Slovenia’s Tadej Pogacar confirmed his victory as the second youngest Tour de France champion in history after Sam Bennett won the final sprint in Paris.
With the race leader not challenged on the final stage, Pogacar finished comfortably in the peloton.
A jubilant Bennett crossed the line ahead of World Champion Mads Pedersen.
Bennett secured victory in the points classification to become only the second Irishman to win the green jersey, Sean Kelly winning four from 1982 to ’89.
Roglic, 30, finished 59 seconds back in second after having held the yellow jersey for 13 days, while Australia’s Richie Porte, 35, claimed his first Grand Tour podium finish in third, three minutes 30 seconds down.
Britain’s Adam Yates, who held the yellow jersey for four days before Roglic took it on stage nine, ended ninth overall, 9mins 25secs behind.
“This is incredible, standing here in Paris on the top step of the podium,” said Pogacar, draped in the Slovenian flag as his parents watched on.
“I never thought I would be here. It’s been an amazing three-week adventure.
“I have to thank everyone who’s been involved in the preparation for the race, everyone in my team and my family.”
Pogacar, who is the first Slovenian winner and first champion on debut since Laurent Fignon in 1983, won three stages in total and also won the polka dot jersey as king of the mountains and the white jersey as the best young rider.
The legendary Eddy Merckx, who won a joint-record five titles, is the only other rider to win three jerseys in the same Tour. Merckx won the yellow, green and combination jerseys in 1969, before the polka dot and white jerseys were introduced.
Pogacar, who turns 22 on Monday, is the youngest Tour champion since France’s Henri Cornet was controversially awarded the second ever title in 1904 at the age of 19 after the initial top four riders were disqualified.
It is a first Tour win for UAE Team Emirates, in either their current guise or as former outfit Lampre, and ends a run of five straight titles for British team Ineos, four of which were as Team Sky.
Pogacar delivers on early promise
Pogacar may have been unfamiliar to casual cycling fans before this Tour but he has been a huge talent since junior level, winning the 2018 Tour de l’Avenir - a prestigious under-23 race whose winners regularly go on to Grand Tour success.
After turning professional in 2019, he won the Tour of California to become the youngest winner of a World Tour stage race before winning three stages and claiming third overall at last year’s Vuelta a Espana, which was won by Roglic.
Even so, Pogacar was seen as an outside bet to challenge favourites Roglic and 2019 champion Egan Bernal for the delayed 2020 Tour, especially with a weaker team compared to Jumbo-Visma and Ineos Grenadiers.
His team was weakened further after former Vuelta winner Fabio Aru and Davide Formolo abandoned, meaning Pogacar had only David de la Cruz for support in the mountains and was often isolated. However, he rode a courageous and canny race to surpass his rivals.
He lost over a minute to Roglic after being caught out in the crosswinds on stage seven but responded the next day to take 40 seconds back, before superbly winning stages nine and 15 just ahead of Roglic to take bonus seconds that reduced the gap to 40 seconds.
Bernal cracked on stage 15 to drop out of contention - later abandoning before stage 17 - to leave the two Slovenians to battle for the title.
Roglic, supported by an all-star team including former Giro d’Italia winner Tom Dumoulin, Sepp Kuss and Wout van Aert, expertly controlled the race and seemed to have made a decisive blow on stage 17 as he distanced Pogacar.
Pogacar did not panic and limited his losses to 17 seconds, but, after failing to cut the deficit in the remaining mountain stages, seemed to have left too much to do in the time trial to overtake Roglic, a former world time trial silver medallist.
Yet Roglic had his worst day on the worst day possible and Pogacar produced his greatest to triumph in one of the most astonishing finishes to any Tour.
Bennett ends Sagan’s green dominance
Deceuninck-Quick-Step rider Bennett, 29, is the first Irishman to win a Tour jersey since the great Kelly won the last of his four green jerseys in 1989.
Bennett, riding his first Tour since 2016, left Sagan’s team Bora-Hansgrohe at the end of last year partly out of frustration at being overlooked for the Tour squad as they focused on Sagan.
Sagan has dominated the points classification since his debut in 2012, winning every year except 2017 when he was disqualified for his part in a crash involving Mark Cavendish.
But it was soon clear an out-of-form Sagan would struggle to win for a record-extending eighth time this year, with the Slovak unable to match the fastest sprinters in bunch finishes and lacking opportunities to get up the road to take points his rivals could not.
After Sagan and Bennett exchanged the jersey in the first week, Bennett took it back with his first Tour stage win on stage 10, before Sagan lost crucial points by being relegated for a collision with Van Aert on stage 11.
Sagan dropped Bennett on stage 14 to cut the gap, but Bennett rode superbly in the final week, marking Sagan and using his superior speed to beat him at most intermediate sprints and stage finishes.
Bennett led by 55 points going into the final stage and took 11 more unopposed by Sagan at the intermediate sprint to establish an insurmountable lead before extending his final advantage to 96 points at the finish with his second stage win, as Sagan finished third.
“I never thought I’d ever be able to win this stage and to do it in green is so special,” said Bennett.
“It’s so amazing this feeling, I just can’t thank everyone enough. All the suffering through the mountains was so worth it as were all the years trying to make it, it took me so long to get here.”
Final general classification
1. Tadej Pogacar (Slo/UAE Team Emirates) 87hrs 20mins 05secs
2. Primoz Roglic (Slo/Jumbo-Visma) +59secs
3. Richie Porte (Aus/Trek-Segafredo) +3mins 30secs
4. Mikel Landa (Spa/Bahrain McLaren) +5mins 58secs
5. Enric Mas (Spa/Movistar) +6mins 07secs
6. Miguel Angel Lopez (Col/Astana) +6mins 47secs
7. Tom Dumoulin (Ned/Jumbo-Visma) +7mins 48secs
8. Rigoberto Uran (Col/EF Pro Cycling) +8mins 02secs
9. Adam Yates (GB/Mitchelton-Scott) +9mins 25secs
10. Damiano Caruso (Ita/Bahrain McLaren) +14mins 03secs
Stage 21 result
1. Sam Bennett (Ire/Deceuninck-Quick-Step) 2hrs 53mins 32secs
2. Mads Pedersen (Den/Trek-Segafredo) Same time
3. Peter Sagan (Svk/Bora-Hansgrohe)
4. Alexander Kristoff (Nor/UAE Team Emirates)
5. Elia Viviani (Ita/Cofidis)
6. Wout van Aert (Bel/Jumbo-Visma)
7. Caleb Ewan (Aus/Lotto Soudal)
8. Hugo Hofstetter (Fra/Israel Start-Up Nation)
9. Bryan Coquard (Fra/B&B Hotels-Vital Concept)
10. Max Walscheid (Ger/NTT Pro)