Slovakian national champion Sagan sprinted ahead of Gerald Ciolek (MTN-Qhubeka) in second and Jens Debusschere (Lotto-Soudal) in third. Sagan could not hide his delight, punching the air and roaring.
A large group of riders, including British sprinter Mark Cavendish (Etixx-QuickStep), were distanced in the latter stages of the race, ruling them out of the finale.
Nairo Quintana (Movistar) finished in the reduced lead group to retain his position at the top of the general classification ahead of Bauke Mollema (Trek) and Rigoberto Uran (Etixx-QuickStep). British rider Adam Yates (Orica-GreenEdge) is sixth.
After the previous day's finish-line blizzard, the weather was not any kinder to the riders with torrential rain affecting the stage throughout. That didn't stop Yukiya Arashiro (Europcar), Stijn Devolder (Trek) and Alessandro Vanotti (Astana) from riding clear of the peloton after 15 kilometres.
An early catch, however, was made with 50 kilometres to go on the day's only classified climb of Montelparo. Vanotti launched an escape again to capture the final intermediate sprint in the final 30km, and was joined by Alexis Vuillermoz (Ag2r). With weary legs from the day's efforts, Vanotti dropped back as Vuillermoz sped ahead with 12 kilometres to go but was finally caught by the peloton just outside the last three kilometres to set up a bunch sprint.
The 2015 Tirreno-Adriatico concludes tomorrow (Tuesday) with a decisive 10 kilometre individual time trial in San Benedetto del Tronto. It remains to be seen whether any of Quintana's rivals can make up their time deficit and prevent him becoming the first Colombian rider to win the race.
Tirreno-Adriatico 2015, stage six: Rieti to Porto Sant’Elpidio, 210km
1. Peter Sagan (Svk) Tinkoff-Saxo
2. Gerald Ciolek (Ger) MTN-Qhubeka
3. Jens Debusschere (Bel) Lotto-Soudal
4. Magnus Cort Nielsen (Den) Orica-GreenEdge
5. Maximiliano Richeze (Arg) Lampre-Merida
6. Edvald Boasson Hagen (Nor) MTN-Qhubeka
7. Nikias Arndt (Ger) Giant-Alpecin
8. Sam Bennett (Irl) Bora-Argon 18
9. Ramunas Navardauskas (Ltu) Cannondale-Garmin
10. Alexey Lutsenko (Kaz) Astana all same time
Overall classification after stage six
1. Nairo Quintana (Col) Movistar
2. Bauke Mollema (Ned) Trek Factory Racing at 39 secs
3. Rigoberto Uran (Col) Etixx-QuickStep at 48 secs
4. Thibaut Pinot (Fra) FDJ at 57 secs
5. Alberto Contador (Spa) Tinkoff-Saxo at 1-03
6. Adam Yates (GBr) Orica-GreenEdge at 1-04
7. Domenico Pozzovivo (Ita) Ag2r at 1-06
8. Joaquim Rodriguez (Spa) Katusha at 1-07
9. Steve Cummings (GBr) MTN-Qhubeka at 1-12
10. Wout Poels (Ned) Sky at 1-13
Thank you for reading 20 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1