Italy's Paolo Savoldelli claimed a Giro d'Italia stage victory after beating compatriot Ivan Basso to the finish line on the 150km stage 11.
Savoldelli won his last Giro stage six years ago
But Basso claimed the pink jersey from Liquigas rider Danilo Di Luca, who slipped back to third overall, while Savoldelli moved up to second.
The CSC rider leads Savoldelli by 18 seconds and Di Luca by over a minute.
Basso extended his lead over defending champion Damian Cunego by three minutes on the first day in the mountains.
The decisive action came after a group containing most of the pink jersey favourites chased down an attack by Frenchman Patrice Halgand of Credit Agricole as they approached the day's penultimate climb, the Passo Duran.
Basso led Simoni and Savoldelli in a five-man group as the peloton thinned out behind them and Cunego, of Lampre-Caffita, found Basso's pace hard to follow.
Savoldelli led on the winding descent of the Passo Duran and by the time he reached the foot of the day's final, 8km climb towards Zoldo Alto, he had taken a small lead on Basso.
However, Savoldelli was soon caught by Basso and Simoni while Di Luca hung on at the rear.
And it was Basso who looked primed for victory before being upstaged by Savoldelli less than 150m from the finish line.
Giro organisers said that fears of an avalanche may lead to the cancellation of Sunday's 14th stage - the Stelvio Pass mountain climb.
A final decision will be taken on Saturday.
Giro d'Italia stage 11 results:
1. Paolo Savoldelli (Italy/Discovery Channel) 4:13:43"
2. Ivan Basso (Italy/Team CSC) Same Time
3. Gilberto Simoni (Italy/Lampre-Caffita) +21"
4. Danilo Di Luca (Italy/Liquigas) +1:01"
5. Daniel Atienza (Spain/Cofidis) +1:50"
6. Wim Van Huffel (Belgium/Davitamon-Lotto) +2:03"
7. Pietro Caucchioli (Italy/Credit Agricole)
8. Sergei Gontchar (Ukraine/Domina Vacanze)
1. Ivan Basso (Italy/Team CSC) 49:05:20"
2. Paolo Savoldelli (Italy/Discovery Channel) +18"
3. Danilo Di Luca (Italy/Liquigas) +1:04"
4. Gilberto Simoni (Italy/Lampre-Caffita) +2:27"
5. Sergei Gontchar (Ukraine/Domina Vacanze) +3:45"
6. Marzio Bruseghin (Italy/Fassa Bortolo) +4:34"
7. Dario Cioni (Italy/Liquigas) +5:25"
8. Emanuele Sella (Italy/Panaria) +5:58"