Tom Dumoulin is favourite to win the 100th Giro d'Italia when it concludes with Sunday's individual time trial.
The Dutchman dropped from second to fourth overall on an enthralling 20th stage, won by France's Thibaut Pinot.
However, Dumoulin, who trails race leader Nairo Quintana by 53 seconds, is expected to overhaul that advantage on the final 29.3km time trial to Milan.
Defending champion Vincenzo Nibali is second, 39 seconds adrift of Quintana, with Pinot four seconds further back.
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 and Pinot.
But the 26-year-old, who has won two Dutch time trial titles and was silver medallist in the discipline at the 2016 Olympics, said: "The time gaps on Sunday will not be as big as in the last time trial and I have to fight for every second."
Colombian Quintana and Nibali of Italy had both said after Friday's stage that they needed to try and put Dumoulin under pressure on Saturday, fearful of his superior time-trialling ability.
The pair, helped by Pinot, repeatedly attacked on the final climb of the race to Foza and at the summit were around 30 seconds clear of Dumoulin.
However, the 190km race to Asiago did not finish at the summit and Dumoulin was able to recoup some of his losses on the 14.5km remaining to the finish, crossing the line 15 seconds after Pinot, who claimed 10 bonus seconds as well as his first Giro stage victory.
Quintana's Movistar team manager Eusebio Unzue said: "We tried to get a bigger gap but Tom has been very strong and is now the clear favourite to win the race."
Pinot, the French national time trial champion in 2016 also appears to have given up hope of winning. He said: "The time gaps are minimal and the flat time trial is tailor-made for Dumoulin.
"To win the Giro I will need to have one of the best days of my life on the bike."
Team Sky's Mikel Landa just needs to complete Sunday's time trial to win the King of the Mountains jersey, while Britain's Adam Yates is holding the white jersey as best young rider.
Orica's Yates, who is eighth overall, leads Bob Jungels by 28 seconds in that classification, however, he said that he was a "realist" and does not expect to hold on to the jersey.
"I needed to take a few more seconds out of Bob to keep hold of the white because he is a time trial specialist," said Yates.
"Maybe if it was a bit more technical, with a few more lumps, I'd have a chance but he's a big strong boy and he's definitely going to take more than 28 seconds out of me over 30km but I'll give it a go."
Stage 20 standings:
1. Thibaut Pinot (Fra FDJ) 4hrs 57mins 58secs
2. Ilnur Zakarin (Rus/Katusha) Same time
3. Vincenzo Nibali (Ita/Bahrain)
4. Domenico Pozzovivo (Ita/AG2R)
5. Nairo Quintana (Col/Movistar)
6. Bob Jungels (Lux Quick-Step) +15secs
7. Adam Yates (GB/Orica) Same time
8. Sebastien Reichenbach (Swi/FDJ)
9. Bauke Mollema (Ned/Trek)
10. Tom Dumoulin (Ned/Sunweb)
General classification after stage 20:
1. Nairo Quintana (Col/Movistar) 90hrs 00mins 38secs
2. Vincenzo Nibali (Ita/Bahrain) +39secs
3. Thibaut Pinot (Fra/FDJ) +43secs
4. Tom Dumoulin (Ned/Sunweb) +53secs
5. Ilnur Zakarin (Rus/Katusha) +1min 15secs
6. Domenico Pozzovivo (Ita/AG2R) +1min 30secs
7. Bauke Mollema (Ned/Trek) +3mins 03secs
8. Adam Yates (GB/Orica) +6mins 50secs
9. Bob Jungels (Lux Quick-Step) +7mins 18secs
10. Davide Formolo (Ita/Cannondale) +12mins 55secs