Sella has been in good form on the mountain stages
Italian Emanuele Sella won his third mountain stage of this year's Giro d'Italia as Alberto Contador held on to his narrow lead on the penultimate day.
The CSF-Navigare rider broke away 30km from the end to finish in a time of six hours, 52 minutes and 45 seconds.
Gilberto Simoni was one minute and four seconds back in second place.
Contador finished 1:30 behind Sella and retains his four-second lead over Riccardo Ricco, who clocked the same time, to move closer to victory.
The Giro concludes on Sunday with a 28.5km time trial that finishes in Milan.
The penultimate stage included the Gavia Pass, the highest point of the three-week race while the riders also climbed the Mortirolo, the toughest ascent of this year's Giro for its combination of length and steepness.
Despite retaining his lead for a sixth consecutive day, Contador, last year's Tour de France winner knows he still has work to do
"Today was another tough day," he said. "We have to wait until tomorrow before I can celebrate, this is not over yet."
Contador has been stronger than Ricco at time trials but although third-placed Marzio Bruseghin is a better time-trial rider, he trails Contador by two minutes.
"It's clear that Contador is much stronger than I am at the time trials, but I will give my best effort," said Ricco.
"Maybe Contador will have a tough day. After all we are not robots and in the Giro one bad day can happen to anybody."
Stage 20 results:
1. Emanuele Sella (Ita/CSF Group) 6hrs 52mins 45secs
2. Gilberto Simoni (Ita/Diquigiovanni) +1:04secs
3. Joaquim Rodriguez (Esp/Caisse d'Epargne) +1:21"
4. Riccardo Ricco (Ita/Saunier Duval) +1:30"
5. Alberto Contador (Esp/Astana) same time
1. Alberto Contador (Esp/Astana) 89hrs 23mins 25secs
2. Riccardo Ricco (Ita/Saunier Duval) +4secs
3. Marzio Bruseghin (Ita/Lampre) +2:00"
4. Franco Pellizotti (Ita/Liquigas) +2:05"
5. Emanuele Sella (Ita/CSF Group) +2:35"