Diego Ulissi won his second stage of this year's Giro d'Italia as Cadel Evans replaced fellow Australian Michael Matthews in the overall lead.
The 24-year-old Italian broke clear from the chasing group in the closing metres to add the mountainous stage eight success to his win on stage five.
"I am euphoric," the Lampre-Merida rider said. "It was a difficult stage and I did not expect to win."
Evans, the 2011 Tour de France winner, took the pink jersey by 57 seconds.
"It has been a difficult Giro so far," the 37-year-old leader of the BMC team said. "There were a lot of tired legs in the group today.
"But we are in a good position at the moment and now we head further into the mountains we will see a different kind of race."
Matthews, who predicted he would lose the leader's jersey on Saturday after a week in pink, slipped down the field with 45km remaining as the riders started up the first category Cippo di Carpegna.
The 23-year-old Orica GreenEdge rider still had the energy to wave at television cameras as he dropped out of the bunch on the first true mountain stage of the three-week race.
Trek's Colombian climber Julian David Arredondo was first to the summit and maintained a one minute, 30 seconds advantage over the chasing group on to the ascent of the second category Villagio del Lago 10 kilometres from the finish.
But the 25-year-old was caught by Frenchman Pierre Rolland on the day's tough final climb, the Montecopiolo, and they were eventually hauled in by the peloton in the closing kilometre.
Ulissi powered out of the bunch with 350 metres to go and passed Trek's Croatian Robert Kiserlovski.
Ulissi said: "It was a difficult race because the climbs were too hard for my kind of character. But I am really, really happy."
1. Diego Ulissi (Ita/Lampre) 4hrs 47mins 47secs
2. Robert Kiserlovski (Cro/Trek) ST
3. Wilco Kelderman (Ned/Belkin) +6secs
4. Nairo Quintana (Col/Movistar) ST
5. Cadel Evans (Aus/BMC) +8secs
6. Rigoberto Uran (Col/Omega) ST
7. Domenico Pozzovivo (Ita/AG2R) ST
8. Rafal Majka (Pol/Tinkoff) +14secs
9. Fabio Aru (Ita/Astana) +17secs
10. Ryder Hesjedal (Can/Garmin) +20secs
1. Cadel Evans (Aus/BMC) 34hrs 22mins 35secs
2. Rigoberto Uran (Col/Omega) +57secs
3. Rafal Majka (Pol/ Tinkoff) +1min 10secs
4. Steve Morabito (Swi/BMC) +1min 31secs
5. Fabio Aru (Ita/Astana) +1min 39secs
6. Diego Ulissi (Ita/Lampre) +1mins 43secs
7. Wilco Kelderman (Ned/Belkin) +1min 44secs
8. Nairo Quintana (Col/Movistar) +1min 45secs
9. Robert Kiserlovski (Cro/Trek) +1min 49secs
10. Domenico Pozzovivo (Ita/AG2R) +1min 50secs