Spaniard Iban Mayo won a rain-soaked 19th stage of the Giro d'Italia on Friday, finishing a comfortable 43 seconds ahead of Italian Giovanni Visconti.
The Saunier Duval rider pulled clear at the front on the final climb to finish ahead of home-favourite Visconti, while Marco Marzano finished third in the 179 kilometre stage between Treviso and Comano Terme.
Italy's Danilo Di Luca of the Liquigas team finished three minutes behind the winner, but retained his overall lead with most of his rivals amongst the peloton.
The race progressed steadily for the opening 30 km, when a group of riders began to force the pace and move clear of the field.
However, with 17 km remaining on the descent of the Pian delle Fugazze, the Basque rider pulled clear of Alberto Losada in dangerous conditions before easing to victory in a time of four hours, 34 minutes and 49 seconds.
It was his biggest win since joining Duval this year and gave the team a fourth success of the race after Leonardo Piepoli, Riccardo Ricco and Gilberto Simoni.
Quickstep's Visconti was second, while another Italian, Marzano of Lampre finished a minute and four seconds adrift.
After early attacks were controlled on the final climb, Di Luca rode home cautiously in 19th under the protection of his Liquigas team to keep the pink jersey on the eve of the Verona time trail.
He is still two minutes and 24 seconds clear of Luxembourg's Andy Schleck from Team CSC, while Duval's Simoni is a further four seconds adrift.
The day's biggest mover was Russian Evgeni Petrov of Tinkoff Credit System, a member of the initial breakaway, as he leapfrogged David Arroyo into seventh in the overall standings.
Saturday's 20th stage is 43km's between Bardolino and Verona, before the tour concludes in Milan on Sunday.
Results and standings after Friday's 179 kms 19th stage of the Giro d'Italia from Treviso to Terme di Comano, Italy.
1. Iban Mayo (Spain / Saunier Duval ) 4hrs 34mins 49secs
2. Giovanni Visconti (Italy / Quick-Step ) +43"
3. Marco Marzano (Italy / Lampre ) +1:04"
4. Michael Rasmussen (Denmark / Rabobank ) +1:08"
5. Evgueni Petrov (Russia / Tinkoff )
6. Mario Aerts (Belgium / Predictor - Lotto ) +2:54"
7. Lorenzo Bernucci (Italy / T-Mobile ) +2:58"
8. Maximiliano Richeze (Argentina / Panaria ) +3:13"
9. Lilian Jegou (France / Francaise des Jeux )
10. Josep Jufre (Spain / Predictor - Lotto )
11. Markel Irizar (Spain / Euskaltel )
12. Paolo Savoldelli (Italy / Astana )
13. Damiano Cunego (Italy / Lampre )
14. Riccardo Ricco (Italy / Saunier Duval )
15. Eddy Mazzoleni (Italy / Astana )
16. Gilberto Simoni (Italy / Saunier Duval )
17. Luca Mazzanti (Italy / Panaria )
18. Danilo Di Luca (Italy / Liquigas )
19. Andy Schleck (Luxembourg / Team CSC )
20. Matthew Lloyd (Australia / Predictor - Lotto )
Overall standings
1. Danilo Di Luca (Italy / Liquigas ) 86hrs 46mins 28secs
2. Andy Schleck (Luxembourg / Team CSC ) +2:24"
3. Gilberto Simoni (Italy / Saunier Duval ) +2:28"
4. Damiano Cunego (Italy / Lampre ) +3:29"
5. Eddy Mazzoleni (Italy / Astana ) +3:46"
6. Riccardo Ricco (Italy / Saunier Duval ) +5:19"
7. Evgueni Petrov (Russia / Tinkoff ) +8:20"
8. David Arroyo (Spain / Caisse d'Epargne ) +10:00"
9. Franco Pellizotti (Italy / Liquigas ) +10:39"
10. Marzio Bruseghin (Italy / Lampre ) +10:55"
11. Emanuele Sella (Italy / Panaria ) +10:59"
12. Ivan Parra (Colombia / Cofidis ) +11:48"
13. Leonardo Piepoli (Italy / Saunier Duval ) +13:08"
14. Paolo Savoldelli (Italy / Astana ) +15:27"
15. Stefano Garzelli (Italy / Acqua & Sapone ) +16:30"
16. Francisco Javier Vila (Spain / Lampre ) +16:32"
17. Domenico Pozzovivo (Italy / Panaria ) +20:35"
18. Marco Pinotti (Italy / T-Mobile ) +28:26"
19. Mario Aerts (Belgium / Predictor - Lotto ) +29:46"
20. Andrey Mizourov (Kazakhstan / Astana ) +31:45"
Sprinters' standings
1. Alessandro Petacchi (Italy / Milram ) 160 points
2. Danilo Di Luca (Italy / Liquigas ) 122
3. Paolo Bettini (Italy / Quick-Step ) 104
4. Leonardo Piepoli (Italy / Saunier Duval ) 93
5. Gilberto Simoni (Italy / Saunier Duval ) 92
6. Stefano Garzelli (Italy / Acqua & Sapone ) 90
7. Maximiliano Richeze (Argentina / Panaria ) 87
8. Riccardo Ricco (Italy / Saunier Duval ) 76
9. Andy Schleck (Luxembourg / Team CSC ) 75
10. Damiano Cunego (Italy / Lampre ) 72
King of the mountains' standings
1. Leonardo Piepoli (Italy / Saunier Duval ) 79 points
2. Fortunato Baliani (Italy / Panaria ) 46
3. Danilo Di Luca (Italy / Liquigas ) 45
4. Gilberto Simoni (Italy / Saunier Duval ) 41
5. Riccardo Ricco (Italy / Saunier Duval ) 36
6. Yoann Le Boulanger (France / Bouygues Telecom ) 24
7. Luis Felipe Laverde (Colombia / Panaria ) 23
8. Andy Schleck (Luxembourg / Team CSC ) 20
9. Damiano Cunego (Italy / Lampre ) 17
10. Marzio Bruseghin (Italy / Lampre ) 15
Team standings
1. Saunier Duval 259 hrs 29 mins 06 secs
2. Panaria +4:02"
3. Lampre +6:38"
4. Liquigas +6:53"
5. Astana +11:23"
6. Acqua & Sapone +1:01:18"
7. Cofidis +1:44:54"
8. Caisse d'Epargne +1:47:02"
9. Predictor - Lotto +1:50:37"
10. Quick-Step +2:18:48"