Part of a star-studded late break that blasted away from the peloton around 25kms from the finish, Kragh Andersen survived a blistering attack from Matteo Trentin (CCC) 16kms from the finish, immediately launching his own.
He quickly built a 30 second lead as Trentin, Greg Van Avermaet, (CCC), Peter Sagan (BORA-hansgrohe), Sam Bennett, Dries Devenyns (Deceuninck–Quick-Step), Luke Rowe (INEOS), Jasper Stuyven (Trek-Segafredo), Oliver Naesen (AG2R), Jack Bauer, Luka Mezgec (Mitchelton-Scott), and Nikias Arndt (Sunweb) looked at each other.
Which was exactly the reaction the Dane hoped to achieve as he squared off against the best riders in the world.
"The last kilometre," Kragh Andersen said "When I was screaming 'can you confirm one minute?,' I didn't believe it.
"I was like, oh, here's all the best riders in the world with the hilly terrain and I was like 'how do I beat these guys?'"
"But the moment came after Trentin attacked really hard and I was also at the limit. I was thinking if I just get a small gap maybe they start looking at each other and that's exactly what happened and that was my luck."
The Dane finished 53 seconds ahead of Luka Mezgec (Mitchelton-Scott), the same 1-2 as his maiden Tour victory on Stage 14. It is also Team Sunweb's third stage victory at this year's Tour de France.
"This is two wins in the same Tour de France I'm speechless. I could never have dreamed about something better.
"For the rest of my life, a memory for life. I'm just super happy."
Plenty of attacks met race director Christian Prudhomme hanging the Depart flag out the window, Rémi Cavagna (Deceuninck–Quick-Step) the first rider to succeed in building any sort of lead 28 seconds after 8kms.
Making the most of the tail wind, the lone figure out the front built a minute's lead over the bunch when Dylan van Baarle (INEOS), Guillaume Martin (Cofidis), Cyril Barthe (B&B), Geoffrey Soupe (Total) Max Walscheid (NTT) escaped in pursuit. At this point, BORA-hansgrohe lost Lukas Pöstlberger abandoning with a bee sting in the mouth.
After 30kms raced and some words with van Baarle about a top-10 contender's presence in the chase group, Martin went back to the peloton. Barthe followed a few kilometres later.
But van Baarle also gave up the chase when Cavagna reached the 41st kilometre and a kilometre later, Soupe and Walscheid.
Cavagna's lead dropped down to two minutes after 60kms and hovered there until it dropped to under a minute as Benoît Cosnefroy (AG2R), Pierre Rolland (B&B) and Luke Rowe (INEOS) jumped up the road before the intermediate sprint.
He sat up and waited for the new chasers but behind in the peloton after Sam Bennett took one more point over Sagan, Kasper Asgreen (Deceuninck - Quick Step) took to the front and unhooked, drawing Sagan, Trentin, and Deceuninck–Quick-Step team mates Michael Mørkøv and Bennett. But the peloton soon clipped their wings.
The leaders' advantage fell to 30 seconds with 41kms to go where Pierre-Luc Périchon (Cofidis) launched an attack which Van Avermaet followed. Around a kilometre later, they were joined by Stuyven, Nils Politt (Israel Start-Up), Mathieu Burgaudeau (Total), Tim Declercq (Deceuninck–Quick-Step), Casper Pedersen, Kragh Andersen (Sunweb), Valentin Madouas (Groupama-FDJ), and Omar Fraile (Astana).
The lead group of four swelled to 14 as the pursuers made the catch, the gap back to the peloton with 36kms to go just 13 seconds. As they headed up a small dig at this juncture and against a small headwind, the peloton made the catch with 35kms to go.
All the riders who took to the front of the peloton sized each other up, like riders in a track sprint, as the terrain began to suit the world's best opportunists.
And that's who made the next group who got away with 25kms to go, the peloton surrendering a few kilometres later as the lead blew out to over two minutes.
The 2020 Tour de France continues with Stage 20's 36.2km individual time trial from Lure to La Planche des Belles Filles, a race against time for Australian Richie Porte to find 99 seconds and the third step on the Paris podium. Watch on SBS HD and SBS On Demand from 8:30pm AEST and the SBS ŠKODA Tour Tracker from 8:50pm AEST.