Italy's Enrico Battaglin won stage 14 of the Giro d'Italia, as Rigoberto Uran retained the overall race lead.
Bardiani Valvole rider Battaglin pipped Team Sky's Dario Cataldo, another Italian, in a thrilling finish after hunting down Dutchman Albert Timmer.
Australia's Cadel Evans finished five seconds ahead of Uran to cut the Colombian's overall lead to 32 seconds.
And pre-race favourite Nairo Quintana clawed back 25 seconds on Uran, but is still more than three minutes adrift.
Battaglin edged out Cataldo in the 162km mountain stage from Aglie to Oropa, after initially being dropped by his breakaway companions.
It was the second successive stage win for Bardiani Valvole, after Marco Canola's victory on Friday.
"I am not used to winning that kind of stage," said Battaglin. "At the beginning I did not think our breakaway could go all the way."
Italian Domenico Pozzovivo, who is fourth overall, attacked his rivals for the race lead four kilometres from the finish, and only Quintana went with him.
But Pozzovivo struggled to maintain the pace, gaining less than 30 seconds on Uran, second-placed Evans and third-placed Rafal Majka.
Uran is one minute, 35 seconds ahead of Majka, with Pozzovivo another 36 seconds back. Quintana is sixth, 3:04 behind Uran with five of the seven stages remaining in the mountains.
"It was a very tough day," said Omega Pharma - Quick-Step rider Uran. "There are a lot of other mountain stages and the only standings that will matter are the final standings."
Sunday's 15th stage, from Valdengo to Plan di Montecampione, is relatively flat before another summit finish.
Stage 14 result
1. Enrico Battaglin (Ita/Bardiani Valvole) 4:34:41"
2. Dario Cataldo (Ita/Team Sky) ST
3. Jarlinson Pantano (Col/Colombia) +7"
4. Jan Polanc (Slo/Lampre) +17"
5. Nicolas Roche (Ire/Tinkoff - Saxo) +22"
6. Albert Timmer (Ned/Giant) +26"
7. Emanuele Sella (Ita/Androni Giocattoli) +28"
8. Mattia Cattaneo (Ita/Lampre) +33"
9. Tim Wellens (Bel/Lotto) +39"
10. Ivan Santaromita (Ita/Orica) +54"
1. Rigoberto Uran (Col/Omega Pharma - Quick-Step) 57:52:51"
2. Cadel Evans (Aus/BMC Racing) +32"
3. Rafal Majka (Pol/Tinkoff - Saxo) +1:35"
4. Domenico Pozzovivo (Ita/AG2R) +2:11"
5. Wilco Kelderman (Ned/Belkin) +2:33"
6. Nairo Quintana (Col/Movistar) +3:04"
7. Fabio Aru (Ita/Astana) +3:16"
8. Wout Poels (Ned/Omega Pharma - Quick-Step) +4:01"
9. Pierre Rolland (Fra/Europcar) +5:07"
10. Robert Kiserlovski (Cro/Trek) +5:13"