Soren Kragh Andersen claimed his second Tour de France victory with another nifty solo attack on Stage 19.
Andersen, 26, of Team Sunweb, attacked after a 16km break and propelled the line to Champagnole, 53 seconds ahead of Luka Mezgec in second.
Irishman Sam Bennett has won his duel with Peter Sagan and looks set to take the green jersey, leading by 55 points with two legs remaining.
Primoz Roglic comfortably maintained his lead of 57 seconds in the yellow jersey.
The Slovenian will win his first Tour title if he stays in the lead after Saturday’s mountain time trial, with tradition dictating the yellow jersey not being attacked on the final processional stage in Paris on Sunday.
Having won Stage 14 with a similar solo move, Kragh Andersen is the fourth rider on this year’s Tour to win two stages after Wout van Aert, Caleb Ewan and Tadej Pogacar, who remains second overall.
The Dane never looked back after walking away from an elite group of 12 men that included Bennett and Sagan, only letting go in the last mile after yelling at a TV motorcycle during a time check to make sure his lead was insurmountable.
“I have to say that in the last few miles I cried out in sheer disbelief,” he said.
“I have two stage victories on the same Tour de France – it’s incredible. I am speechless.
“I was in the mix with some of the best riders in the world for this type of race and honestly I didn’t know how to beat them because I was in my limit too.
“But then I realized that if I somehow managed to get a little gap it might allow me to take it out and that’s exactly what happened. It is a memory that I will keep in my mind for the rest of my life. “
It was another impressive tactical display from Sunweb, who has now won three stages in this Tour.
After the breakaway was caught with 35km from the finish, the German team first attempted to keep the race together for their sprinter Cees Bol using Kragh Andersen and Nikias Arndt to score the attacks.
But once it became clear that the peloton would not catch up with the leading group, they adjusted perfectly, with Kragh Andersen catching up and moving away from good one day runners such as Greg van Avermaet, Oliver Naesen and Sagan .
The group could not organize behind and when the Briton Luke Rowe launched a late counterattack, it was already in vain, the Ineos Grenadiers driver finishing seventh.
Bennett appeared content to score the record, seven-time green jersey winner Sagan instead of chasing his second stage victory of the race.
Rider Deceuninck-Quick-Step beat the Slovak in the intermediate sprint and at the finish to add three points to his lead in the points classification.
There is a maximum of 90 points left in the race, although it is very unlikely that Sagan or Bennett will take any points in Saturday’s time trial by finishing in the top 15 of the stage.
That leaves 70 points on the last stage and even if Sagan were to earn the maximum points, Bennett only needs to collect 16 – the equivalent of finishing fifth on the stage – to make sure he does not become as the second Irishman after Sean Kelly to win the green jersey. .
Result of step 19
Soren Kragh Andersen (Den / Team Sunweb) 5 hours 36 minutes 33 seconds
2. Luka Mezgec (Slo / Mitchelton-Scott) + 53secs
3. Jasper Stuyven (Bel / Trek-Segafredo) Same time
Greg van Avermaet (Bel / CCC team)
5. Oliver Naesen (Bel / AG2R La Mondiale)
6. Nikias Arndt (Ger / Team Sunweb)
7. Luke Rowe (GB / Ineos Grenadiers) + 59secs
8. Sam Bennett (Ire / Deceuninck-Quick-Step) + 1min 02secs
9. Peter Sagan (Svk / Bora-Hansgrohe) Same time
10. Matteo Trentin (Ita / CCC team)
General classification after stage 19
1. Primoz Roglic (Slo / Jumbo-Visma) 83hrs 29mins 41secs
2. Tadej Pogacar (Slo / UAE Team Emirates) + 57secs
3. Miguel Angel Lopez (Col / Astana) + 1mins 27secs
4. Richie Porte (Aus / Trek-Segafredo) + 3mins 06secs
5. Mikel Landa (Spa / Bahreïn McLaren) + 3 minutes 28 seconds
6. Enric Mas (Spa / Movistar) + 4 minutes 19 seconds
7. Adam Yates (GB / Mitchelton-Scott) + 5 minutes 55 secondes
8. Rigoberto Uran (Col / EF Pro Cycling) + 6mins 05secs
9. Tom Dumoulin (Ned / Jumbo-Visma) + 7mins 24secs
10. Alejandro Valverde (Spa / Movistar) + 12mins 12secs