Asiago - Colombian Nairo Quintana retained the Giro d'Italia pink jersey after a 20th and penultimate stage won by Frenchman Thibaut Pinot that saw Dutchman Tom Dumoulin remain in victory contention.
Pinot, of the FDJ team, claimed his maiden Giro stage after dominating a five-man bunch sprint at the end of a thrilling 190 km ride from Pordenone to Asiago that saw Dumoulin's rivals attack the Dutchman throughout.
Quintana, the 2014 champion, finished just behind Pinot in fifth to retain the race lead with a 39sec lead on Italy's two-time and defending champion Vincenzo Nibali (Bahrain) and a 43sec cushion on Pinot.
"I'm very happy to win this stage ahead of some of the best riders in this Giro," said Pinot, who, as the French time trial champion, will confidently target a podium finish in Milan on Sunday.
"I came for a stage victory, which I'm very happy about because it's always special to win a stage from a grand tour.
"But to win the Giro I will need to have one of the best days of my life on the bike. In any case, I'll give it everything."
However Dumoulin, 53secs behind in fourth overall after finishing 15secs behind Pinot,is the overriding favourite for Sunday's 29.3 km race against the clock from Monza to Milan.
After handing the pink jersey to Quintana on the final summit of Piancavallo to drop to second overall at 38secs on Friday, Sunweb team leader Dumoulin was warned he would be in for a tough, final day in the mountains.
Quintana, Nibali and Pinot kept to thir word with a series of attacks on the final, 14km climb to Foza that preceded a final rolling section leading to Asiago.
But their combined efforts failed to shake the Dutchman, who for the closing kilometres was left in a five-man group containing allies in Bob Jungels (Quick Step), Adam Yates (Orica) and fellow Dutchman Bauke Mollema (Trek).
"Luckily, I had better legs than yesterday," Dumoulin said at the finish.
"I absolutely killed myself, but I'm forever thankful and grateful to the help from Bauke Mollema, Adam Yates and Bob Jungels."
On the 10th stage time trial where he took the pink jersey for the first time in this 100th edition, Dumoulin was over two minutes faster than Nibali and nearly three minutes faster than Quintana.
At the finish, Quintana looked resigned to defeat as he said: "We tried our hardest to take time from him (Dumoulin), but he found some allies.
"We took some time, which is better than nothing."
Another top performance into Milan on Sunday could see Dumoulin become the first Dutch winner of the 'maglia rosa'.
But he added: "We'll see. It all depends on the legs tomorrow. I'm already very happy it worked out today."
Results from the 20th and penultimate stage of the Giro d'Italia, held over 190 km between Pordenone and Asiago on Saturday:
1. Thibaut Pinot (FRA/FDJ) 4hr 57min 58sec, 2. Ilnur Zakarin (RUS/KAT) same time, 3. Vincenzo Nibali (ITA/BAH) s.t., 4. Domenico Pozzovivo (ITA/ALM) s.t., 5. Nairo Quintana (COL/MOV) s.t., 6. Bob Jungels (LUX/QST) at 15secs, 7. Adam Yates (GBR/ORI) s.t., 8. Sebastien Reichenbach (SUI/FDJ) s.t., 9. Bauke Mollema (NED/TRE) s.t. 10. Tom Dumoulin (NED/SUN) s.t.
1. Nairo Quintana (COL/Movistar) 90hr 00min 38sec, 2. Vincenzo Nibali (ITA/BAH) at 39secs, 3. Thibaut Pinot (FRA/FDJ) 43, 4. Tom Dumoulin (NED/SUN) 53, 5. Ilnur Zakarin (RUS/KAT) 1:15, 6. Domenico Pozzovivo (ITA/ALM) 1:30, 7. Bauke Mollema (NED/TRE) 3:03, 8. Adam Yates (GBR/ORI) 6:50, 9. Bob Jungels (LUX/QST) 7:18, 10. Davide Formolo (ITA/CAN) 12:55