Colombian Nairo Quintana has taken the overall lead at the Giro d'Italia with two stages of the race remaining.
Team Sky's Mikel Landa broke clear on the race to the summit finish to win stage 19 but the drama was behind him.
Tom Dumoulin, who had led since winning stage 10, cracked on the final climb, and his 31-second advantage evaporated.
The Dutchman is 38 seconds adrift of Quintana and five ahead of third-placed Vincenzo Nibali but Sunday's final stage time trial will favour Dumoulin.
Movistar's Quintana, the 2014 Giro champion, immediately warned that the 100th edition of the three-week race was "far from over" and that he had to try and "take more time" from Dumoulin on Saturday's "decisive" final day in the mountains.
Italy's defending champion Nibali, who rides for Bahrain-Merida, agreed, saying: "We have to give it everything, we have to take as many seconds as possible before the time trial."
Stage 20 features two big ascents as the riders tackle a 190km route from Pordenone to Asiago and 27-year-old Quintana and Nibali, 32, are more accomplished climbers than Dumoulin.
Sunday's final stage is a largely flat 29.3km time trial from Monza to Milan and 26-year-old Dumoulin is expected to comfortably beat his rivals in the race against the clock.
Sunweb team leader Dumoulin, who is trying to become the first Dutchman to win the Giro, won the time trial on stage 10, completing the 39.8km course more than three minutes quicker than Quintana and more than two minutes clear of Nibali.
Friday's winner Landa rode solo over the finish line after two near misses earlier in the race.
The Spaniard has twice been beaten in the final metres of a stage this week but he made sure on stage 19, riding clear from the breakaway in the final 10km of the climb to Piancavallo.
Landa leads the King of the Mountains classification after taking victory from Rui Costa by one minute 49 seconds.
Orica's British rider Adam Yates finished in a group alongside Quintana, more than eight minutes behind Landa, to move up to eighth in the overall standings.
Nibali crossed the line a couple of seconds after Yates and Quintana with Dumoulin more than a minute further back.
Stage 19 results
1. Mikel Landa (Sp/Team Sky) 4hrs 53mins 00secs
2. Rui Costa (Por/UAE Team Emirates) +1min 49secs
3. Pierre Rolland (Fra/Cannondale) +1min 54secs
4. Pello Bilbao (Spa/Astana) +2mins 12secs
5. Sebastian Henao (Col/Team Sky) +3mins 06secs
6. Evgeniy Shalunov (Rus/Gazprom) +3mins 51secs
7. Luis Leon Sanchez (Spa/Astana) Same time
8. Matteo Busato (Ita/Wilier Triestina) +5mins 05secs
9. Lorenzo Rota (Ita/Bardiani Valvole) Same time
10. Ilia Koshevoy (Blr/Wilier Triestina) +6mins 44secs
Overall classification after stage 19
1. Nairo Quintana (Col/Movistar) 85hrs 02mins 40secs
2. Tom Dumoulin (Ned/Sunweb) +38secs
3. Vincenzo Nibali (Ita/Bahrain) +43secs
4. Thibaut Pinot (Fra/FDJ) +53secs
5. Ilnur Zakarin (Rus/Katusha) +1min 21secs
6. Domenico Pozzovivo (Ita/AG2R) +1min 30secs
7. Bauke Mollema (Ned/Trek) +2mins 48secs
8. Adam Yates (GB/Orica) +6mins 35secs
9. Bob Jungels (Lux/Quick-Step) +7mins 03secs
10. Steven Kruijswijk (Ned/LottoNL) +7mins 37secs