Tadej Pogacar is set to win his second Tour de France after finishing seventh in the penultimate stage time trial.
Jumbo-Visma's Wout van Aert won stage 20, his second stage victory this year.
Pogacar, 22, will officially win the yellow jersey after Sunday's final stage to Paris, when - by tradition - the leader is not challenged.
Defending champion Pogacar, of UAE-Team Emirates, is five minutes 20 seconds ahead of Jumbo-Visma's Jonas Vingegaard in second.
Ecuador's Richard Carapaz of Ineos Grenadiers will finish third, seven minutes three seconds down.
"I'm super happy to finish - it went so fast," said Pogacar. "There was so much support on course, I was just enjoying every moment, though I was suffering as it was super hot.
"I cannot describe it. I was going flat out but it was totally different to stage five [another time trial, won by Pogacar] where there was much more adrenaline. But today I did my best - I was prepared, but not as good in the legs.
"I cannot compare - last year was something else. This year is just different."
A hot day in the saddle
The time trial took place on a hot day near Bordeaux and, for many tired riders, it showed.
Former Tour winner Geraint Thomas, who sacrificed any chances of a potential overall win after a crash early in the three-week race, came home 37th.
The Briton said: "Definitely been the hardest Tour I've done mentally. I enjoyed today - took it easy.
"You've got to go all in. I had a good team around me. Don't get me wrong - there's been some dark times."
Van Aert won the 30.8km time trial by 21 seconds over Demark's Kasper Asgreen of Deceuninck-Quick Step, with Vingegaard third, a further 11 seconds back.
Vingegaard clawed back 15 seconds overall on Pogacar, but Carapaz lost one minute 12 seconds.
The race ends on the Champs-Elysees in Paris on Sunday, when Britain's Mark Cavendish will have a chance to break the record for Tour de France stage wins he currently shares with Belgian legend Eddy Merckx by securing a 35th victory.
How did Pogacar dominate the Tour?
Pogacar's performances in the lead-up to the Tour were imperious, beating a string of in-form riders - several of them from Ineos, including Adam Yates at the UAE Tour in February.
The first week of this race was a controversial, crash-strewn affair, with Pogacar the only leading man to stay out of trouble as rivals Roglic and Thomas crashed out of contention.
There were early race attacks, hoping to upset his team, but, since his stage five time-trial victory, Pogacar has not looked back.
Attacks against him in the mountains were few and far between, and when riders such as the surprising Vingegaard - riding for Jumbo-Visma - did venture off the front of the peloton, Pogacar would follow them - making a strong point that he could marshal most situations himself.
Another Tour of toil for Ineos
The sight of Carapaz on the podium in Paris is unlikely to deflect attention away from what will likely be viewed as a disappointing performance from Ineos Grenadiers, who produced the overall winner on seven occasions between 2012 and 2019.
Like Michal Kwiatkowski's victory on stage 18 in 2020, it is scant consolation for a team widely believed to have the biggest budget in cycling.
In their defence, team boss Sir Dave Brailsford can point to numerous high-profile victories this season.
Egan Bernal triumphed at the first Grand Tour of the season - the Giro d'Italia - while Geraint Thomas (Tour de Romandie), Carapaz (Tour de Suisse) and Richie Porte (Criterium du Dauphine) have all enjoyed notable wins.
However, the Tour remains a key barometer of success as the most prestigious race in cycling.
And for the second year running barely anything has gone to plan during a period in which Pogacar's dominance has seemed absolute.
Porte and Tao Geoghegan Hart's effectiveness was immediately impaired after they were caught in a crash on stage one, and 2018 champion Thomas - whose contract is due to expire at the end of the year - has struggled since dislocating his shoulder on stage three.
Even Carapaz's attack on stage 17 - after brilliantly bluffing his way up the Col du Portet on the wheels of Vingegaard and the yellow jersey - fell flat as he conceded time to both at the summit finish.
Speaking at the end of stage 20, Thomas said: "I am well up for the challenge and the fight with the boys. We are certainly up against it. He [Tadej Pogacar] is a talented guy but nobody is unbeatable."
Full stage results
General classification after stage 20
1. Tadej Pogacar (Slo/UAE-Team Emirates) 80hrs 16mins 59secs
2. Jonas Vingegaard (Den/Jumbo Visma) +5mins 20secs
3. Richard Carapaz (Ecu/Ineos Grenadiers) +7mins 3secs
4. Ben O'Connor (Aus/AG2R Citroen) +10mins 02secs
5. Wilco Kelderman (Ned/Bora-Hansgrohe) +10mins 13secs
6. Enric Mas (Spa/Movistar) +11mins 43secs
7. Alexey Lutsenko (Kaz/Astana) +12mins 23secs
8. Guillaume Martin (Fra/Cofidis) +15mins 33secs
9. Pello Bilbao (Spa/Bahrain-Victorious) +16mins 4secs
10. Rigoberto Uran (Col/EF Education Nippo) +18mins 34secs