Italy's Marco Canola was a surprising winner of Giro d'Italia's stage 13 as Rigoberto Uran retained the race lead.
Canola was in a three-man breakaway that surged clear of an initial six-strong group in the final 20km of the 158km stage to Rivarolo Canavese.
Nacer Bouhanni, winner of three stages in this year's race, led the peloton over the line 11 seconds adrift, with Britain's Ben Swift in eighth.
Uran finished in the peloton to keep his 37-second lead over Cadel Evans.
A relatively flat stage had been expected to end in a bunch sprint but race officials slowed the chasing peloton in the closing 30km after a hailstorm had left debris on the already wet roads.
That allowed the six riders who had broken away early on in the stage to maintain their lead of more than two minutes as they entered the final 25km.
However, as the peloton reached drier roads, they quickly ate into the advantage, prompting Canola, Jackson Rodriguez of Venezuela and France's Angelo Tulik to make a further break.
The sprinters' teams in the peloton left it too late to chase them down on a technical run-in to the finish.
Canola, riding for Bardiani Valvole, was the first to start his sprint and held on to win his first Grand Tour stage ahead of Rodriguez and Tulik.
Saturday's stage 14 features several mountain ascents and a summit finish at Plan de Montecampione.
Stage 13 result
1. Marco Canola (Ita/Bardiani Valvole) 3:37:20"
2. Jackson Rodriguez (Ven/Androni Giocattoli) ST
3. Angelo Tulik (Fra/Europcar)
4. Nacer Bouhanni (Fra/FDJ.fr) +11"
5. Giacomo Nizzolo (Ita/Trek)
6. Elia Viviani (Ita/Cannondale)
7. Luka Mezgec (Slo/Giant)
8. Ben Swift (GB/Team Sky)
9. Tyler Farrar (US/Garmin)
10. Borut Bozic (Slo/Astana)
1. Rigoberto Uran (Col/Omega Pharma - Quick-Step) 53:15:06"
2. Cadel Evans (Aus/BMC Racing) +37"
3. Rafal Majka (Pol/Tinkoff - Saxo) +1:52"
4. Domenico Pozzovivo (Ita/AG2R) +2:32"
5. Wilco Kelderman (Ned/Belkin) +2:50"
6. Nairo Quintana (Col/Movistar) +3:29"
7. Fabio Aru (Ita/Astana) +3:37"
8. Wout Poels (Ned/Omega Pharma - Quick-Step) +4:06"
9. Steve Morabito (Swi/BMC Racing) +4:20"
10. Robert Kiserlovski (Cro/Trek) +4:41"