# 2022 Tour de France

The 2022 Tour de France was the 109th edition of the Tour de France. It started in Copenhagen, Denmark on 1 July 2022 and ended with the final stage on the Champs-Élysées, Paris on 24 July 2022. Denmark's Jonas Vingegaard (Team Jumbo–Visma) won the general classification for the first time. Two-time defending champion Tadej Pogačar (UAE Team Emirates) finished in second place, and former winner Geraint Thomas (Ineos Grenadiers) finished third. This was the first Tour since 1989 in which each of the three podium finishers had made the podium on a previous occasion.
The race began in Copenhagen before returning to France. Wout van Aert of Team Jumbo–Visma controlled the lead for much of the first week until Pogačar seized control of the race and won two consecutive stages. In the Alps, Team Jumbo–Visma attacked Pogačar, and Vingegaard became the first rider to take serious time from Pogačar. Vingegaard defended and increased his lead through the Pyrenees and the final individual time trial to secure the victory. He thereby became the first Dane to win the Tour since Bjarne Riis in 1996.
The race was affected by climate-change protests as well as a 40 °C (104 °F) heat wave. The race had the fewest number of finishers since 2000, with 17 riders forced to leave the race because of COVID-19, including stage winners Magnus Cort and Simon Clarke, as well as former Tour winner Chris Froome of Israel–Premier Tech.
The points classification was won by Wout van Aert with 480 points, breaking Peter Sagan's modern-day record. Vingegaard also won the mountains classification, marking the first time since 1969 that riders from the same team won the yellow and green jerseys as well as the mountains classification. The young rider classification was won by GC runner-up Pogačar, and the team of Ineos Grenadiers won the team classification. Van Aert was chosen as the most combative rider.
The race was followed by the first edition of the Tour de France Femmes, which had its first stage on the final day of the men's Tour.

## Teams

22 teams participated in the race. All 18 UCI WorldTeams were automatically invited. They were joined by 4 UCI ProTeams - the two highest placed UCI ProTeams in 2021 (Alpecin–Deceuninck and Arkéa–Samsic), along with Team TotalEnergies and B&B Hotels–KTM who were selected by Amaury Sport Organisation (ASO), the organisers of the Tour. The teams were announced on 11 February 2022. 176 riders started the race, from 27 nationalities – with the largest percentage being French (11% of the peloton).
UCI WorldTeams
* AG2R Citroën Team
* Astana Qazaqstan Team
* Bora–Hansgrohe
* Cofidis
* EF Education–EasyPost
* Groupama–FDJ
* Ineos Grenadiers
* Intermarché–Wanty–Gobert Matériaux
* Israel–Premier Tech
* Lotto–Soudal
* Movistar Team
* Quick-Step Alpha Vinyl Team
* Team Bahrain Victorious
* Team BikeExchange–Jayco
* Team DSM
* Team Jumbo–Visma
* Trek–Segafredo
* UAE Team Emirates
UCI ProTeams
* Alpecin–Deceuninck
* Arkéa–Samsic
* B&B Hotels–KTM
* Team TotalEnergies

## Route and stages

In February 2019, it was announced that Denmark would host the Grand Départ of the Tour in 2021. However, due to the COVID-19 pandemic, this was delayed to 2022. In October 2021, the route was announced by Christian Prudhomme. Three stages took place in Denmark, with an opening time trial in Copenhagen. Other features of the Tour include 11 cobbled sectors on stage 5 (cobbles last featured in 2018), a gravel summit finish at La Super Planche des Belles Filles on stage 7, and a summit finish on Col du Granon on stage 11 (the Col du Granon was last used in 1986). The queen stage took place on Bastille Day, with a replica of Stage 18 of the 1986 Tour to Alpe d'Huez.
Stage characteristics :
| Stage | Date | Course | Distance | Type | Type | Winner |
| 1 | 1 July | Copenhagen (Denmark) | 13.2 km (8.2 mi) | | Individual time trial | Yves Lampaert (BEL) |
| 2 | 2 July | Roskilde to Nyborg (Denmark) | 202.5 km (125.8 mi) | | Flat stage | Fabio Jakobsen (NED) |
| 3 | 3 July | Vejle to Sønderborg (Denmark) | 182 km (113 mi) | | Flat stage | Dylan Groenewegen (NED) |
| | 4 July | Sønderborg (Denmark) to Dunkirk | Transfer | Transfer | Transfer | Transfer |
| 4 | 5 July | Dunkirk to Calais | 171.5 km (106.6 mi) | | Hilly stage | Wout van Aert (BEL) |
| 5 | 6 July | Lille to Arenberg | 157 km (98 mi) | | Hilly stage | Simon Clarke (AUS) |
| 6 | 7 July | Binche (Belgium) to Longwy | 220 km (140 mi) | | Hilly stage | Tadej Pogačar (SLO) |
| 7 | 8 July | Tomblaine to La Super Planche des Belles Filles | 176.5 km (109.7 mi) | | Medium-mountain stage | Tadej Pogačar (SLO) |
| 8 | 9 July | Dole to Lausanne (Switzerland) | 186.5 km (115.9 mi) | | Hilly stage | Wout van Aert (BEL) |
| 9 | 10 July | Aigle (Switzerland) to Châtel | 193 km (120 mi) | | Mountain stage | Bob Jungels (LUX) |
| | 11 July | Morzine | Rest day | Rest day | Rest day | Rest day |
| 10 | 12 July | Morzine to Megève | 148.5 km (92.3 mi) | | Medium-mountain stage | Magnus Cort (DEN) |
| 11 | 13 July | Albertville to Col du Granon | 152 km (94 mi) | | Mountain stage | Jonas Vingegaard (DEN) |
| 12 | 14 July | Briançon to Alpe d'Huez | 165.5 km (102.8 mi) | | Mountain stage | Tom Pidcock (GBR) |
| 13 | 15 July | Le Bourg-d'Oisans to Saint-Étienne | 193 km (120 mi) | | Flat stage | Mads Pedersen (DEN) |
| 14 | 16 July | Saint-Étienne to Mende | 192.5 km (119.6 mi) | | Medium-mountain stage | Michael Matthews (AUS) |
| 15 | 17 July | Rodez to Carcassonne | 202.5 km (125.8 mi) | | Flat stage | Jasper Philipsen (BEL) |
| | 18 July | Carcassonne | Rest day | Rest day | Rest day | Rest day |
| 16 | 19 July | Carcassonne to Foix | 178.5 km (110.9 mi) | | Mountain stage | Hugo Houle (CAN) |
| 17 | 20 July | Saint-Gaudens to Peyragudes | 130 km (81 mi) | | Mountain stage | Tadej Pogačar (SLO) |
| 18 | 21 July | Lourdes to Hautacam | 143.5 km (89.2 mi) | | Mountain stage | Jonas Vingegaard (DEN) |
| 19 | 22 July | Castelnau-Magnoac to Cahors | 188.5 km (117.1 mi) | | Flat stage | Christophe Laporte (FRA) |
| 20 | 23 July | Lacapelle-Marival to Rocamadour | 40.7 km (25.3 mi) | | Individual time trial | Wout van Aert (BEL) |
| 21 | 24 July | Paris La Défense Arena to Paris (Champs-Élysées) | 116 km (72 mi) | | Flat stage | Jasper Philipsen (BEL) |
| Total | Total | Total | 3,349.8 km (2,081.5 mi) | 3,349.8 km (2,081.5 mi) | 3,349.8 km (2,081.5 mi) | 3,349.8 km (2,081.5 mi) |

## Pre-race favourites

In the lead up to the event, the top pre-race favourites were Tadej Pogačar of UAE Team Emirates, and Jonas Vingegaard and Primož Roglič of Team Jumbo–Visma. The 2nd tier general classification (GC) favourites were thought to be Aleksandr Vlasov of Bora–Hansgrohe, and Geraint Thomas and Dani Martínez of Ineos Grenadiers, with longshot favourites including Ben O'Connor, Adam Yates, Enric Mas and Romain Bardet.

## Race overview
### Grand Départ and Week One

The race began in Copenhagen, Denmark for the first time, with three stages in Denmark. After finishing second in the opening time trial, behind Yves Lampaert of Quick-Step Alpha Vinyl Team, Wout van Aert of Jumbo–Visma took the yellow jersey in stage 2 by virtue of bonus seconds. Danish rider Magnus Cort of EF Education–EasyPost took all King of the Mountains (KoM) points available in Denmark, collecting enough for him to wear the polka dot jersey until stage 9. During this run he claimed the record of most consecutive summits won, from former Tour champion and multi-time mountains classification winner Federico Bahamontes. Sprinter Dylan Groenewegen of Team Jayco–AlUla won the final stage in Denmark, before a transfer day and return to France.
On stage 4, van Aert extended his lead with a solo attack into Calais. Stage 5 involved cobbles for the first time since 2018, with Pogačar gaining time in the general classification over every GC contender including Vingegaard, who had mechanical issues, and Roglič who crashed and dislocated his shoulder. Stage 6 was the longest of the race, with van Aert taking part in the breakaway to extend his lead in the points classification, before eventually being caught and falling off the back losing the overall lead. In the final uphill sprint, Pogačar out sprinted everyone to win the stage and take the maillot jaune by virtue of the bonus seconds.
Stage 7 was the first summit finish of the race at Super Planche des Belles Filles. A group of GC contenders made their way up the majority of the climb together, before Vingegaard attacked and only Pogačar could follow. In a sprint on the final slope, Pogačar overtook Vingegaard to get the stage win and extend his lead to over 30 seconds. Other GC contenders lost between 20 seconds and over a minute to the leading two. After stage 8, a hilly stage that finished in Lausanne, Switzerland where van Aert extended his points classification lead further, and stage 9 in the Swiss Alps where Bob Jungels won the day and Simon Geschke gained enough KoM points to take the polka dot jersey, the first rest day took place in Morzine.

### Week Two

During the second week, stages 10 and 18 were disrupted by Climate Change protesters, which forced stages to be halted for a short period. Media discussed the legitimacy of the protest and the effect that climate change was having on the Tour, while other coverage expressed annoyance at the disruption to the race. The second week of the race was affected by an intense heat wave, with several stages having temperatures of around 40 °C (104 °F). Some riders suffered heat stroke including Alexis Vuillermoz on stage 9.
No major attacks by GC contenders occurred on stage 10, the first in the French Alps, however Lennard Kämna who was in the breakaway that finished close to ten minutes ahead of the peloton, came within eleven seconds of taking the yellow jersey from Pogačar. The stage was won by Magnus Cort, in a photo finish ahead of Nick Schultz. Stage 11 was a summit finish at the Col du Granon – which was included in the Tour for the first time since 1986. After constant attacks by Roglič and Vingegaard on the flat before the Col du Galibier, a gap opened up between Pogačar and Vingegaard on the final ascent to Col du Granon. Vingegaard gained nearly three minutes on Pogačar, winning the stage and taking the yellow jersey. At the end of the day only six riders were within five minutes of Vingegaard in the overall situation: Bardet, Pogačar, Thomas, Quintana, Yates and Gaudu.
Stage 12 to Alpe d'Huez was the queen stage of the Tour, taking place on Bastille Day. Neilson Powless of Team EF Education–EasyPost attacked at kilometre zero and stayed at the front of the race until near the very end. Tom Pidcock of Ineos Grenadiers and former Tour winner Chris Froome, attacked about halfway through the stage and bridged up to the leading breakaway riders. On the final ascent of Alpe d'Huez, Pidcock attacked from the group including Powless, Froome, Ciccone and Meintjes and rode on to a convincing solo victory. In the GC race, Pogačar attacked Vingegaard twice, with both riders dropping the other contenders on the climb, however the Slovenian rider was unable to shake off the Dane.
The transitional stage 13 out of the Alps was won by the sprinter Mads Pedersen of Lidl–Trek, and stage 14 was won by Michael Matthews of Team Jayco–AlUla from the breakaway, who was just able to drop Alberto Bettiol prior to reaching the summit of the final intermediate climb. Behind Matthews, Pogačar and Vingegaard attacked the peloton on this same climb and extended their lead over the other GC contenders. Stage 15, before the second rest day, took the Tour to Carcassonne where the final breakaway rider in Benjamin Thomas was caught in the final few hundred meters to set up a sprint finish, which was won by Jasper Philipsen. Jumbo–Visma lost two riders on stage 15: team leader Roglič abandoned the race following his injuries on stage 5, and domestique Steven Kruijswijk left the race in an ambulance after dislocating his shoulder in a crash.

### Week Three

After a rest day in Carcassonne, the race entered the Pyrenees. Stage 16 was won by Hugo Houle of Israel–Premier Tech, after a solo attack from the breakaway with around 40 kilometres (25 mi) to go. Rafał Majka, a "key lieutenant" of Pogačar did not start stage 17, due to an injury suffered after he threw his chain near the end of stage 16. Brandon McNulty of UAE Team Emirates pulled his teammate Pogačar and Vingegaard up to the final steep slopes of Peyragudes, increasing the gap to the rest of the peloton. Inside the final 500m of steep climbing Pogačar attacked, but Vingegaard responded and followed with a counter attack of his own. Just before the line, Pogačar was able to come around him to win his third stage of the Tour and reduce Vingegaard's lead in the GC by four seconds thanks to bonus seconds, to 2 minutes 18 seconds.
On stage 18 – the final day in the Pyrenees – Pogačar attacked Vingegaard multiple times on the Col de Spandelles, with Vingegaard able to keep up every time. On the descent, both riders pushed hard: Vingegaard almost crashed, while Pogačar did crash after slipping on gravel. Pogačar was able to continue with minor cuts to his leg; in a moment of sportsmanship, Vingegaard slowed down and waited for Pogačar.
Before the ascent of the Hautacam, both riders were caught by a larger group including Thomas and two of Vingegaard's teammates (Sepp Kuss and Tiesj Benoot). On the final climb, a furious pace was set by Kuss, leaving all other contenders behind. Meeting up with van Aert ahead (who had been in a breakaway), the high tempo continued, until van Aert and Vingegaard attacked Pogačar with around 4 kilometres (2.5 mi) to go to the top. Pogačar was unable to keep up, so Vingegaard extended his GC lead to almost three and a half minutes. By taking maximum KoM points at the top of Hautacam, Vingegaard gained an unassailable lead of that classification, taking the jersey from Simon Geschke of Team Cofidis, who had set a record for most days by a German rider leading the mountains classification.
After the transitional stage 19 was won by Christophe Laporte of Jumbo-Visma, the final time trial to Rocamadour was won by van Aert, followed by Vingegaard, Pogačar and Thomas. The traditional final stage on the Champs-Élysées in Paris completed the Tour, with sprinter Jasper Philipsen winning his second stage of the Tour.
In the general classification, Vingegaard became the first Dane to win the Tour since 1996, with Pogačar in second 2 minutes 43 seconds behind. Thomas was third, over seven minutes behind. The points classification was won by Wout van Aert with 480 points, breaking Peter Sagan's modern record. Vingegaard also won the mountains classification, marking the first time since the Faema team of Eddy Merckx in 1969, that riders from the same team won the yellow and green jerseys as well as the mountains classification. The young rider classification was won by runner-up Pogačar, who led the classification from start to finish and tied Jan Ullrich and Andy Schleck with his third win of this classification. The team of third place Thomas, Ineos Grenadiers, won the team classification. Van Aert was chosen as the most combative rider. Caleb Ewan was the Lanterne rouge - normally competitive with the elite sprinters, his top 10 result on stage 21 was his highest stage finish of the Tour.
The race had the fewest finishers since 2000, with just 135 of the 176 starters reaching the finish line in Paris. The teams of the first two podium finishers were severely depleted by the end of the race, with Team UAE Emirates losing half its start list due to injury and illness, and Team Jumbo-Visma losing several key members along the route. Several riders were forced to leave the race due to contracting Covid, including stage winners Magnus Cort and Simon Clarke, and former Tour winner Chris Froome of Israel–Premier Tech.
In August 2022, Colombian rider Nairo Quintana of Arkéa–Samsic was disqualified from 6th place overall, after blood samples tested positive for tramadol, a painkiller.

## Classification leadership

Classification leadership by stage :
| Stage | Winner | General classification | Points classification | Mountains classification | Young rider classification | Team classification | Combativity award |
| 1 | Yves Lampaert | Yves Lampaert | Yves Lampaert | no award | Tadej Pogačar | Team Jumbo–Visma | no award |
| 2 | Fabio Jakobsen | Wout van Aert | Wout van Aert | Magnus Cort | Tadej Pogačar | Team Jumbo–Visma | Sven Erik Bystrøm |
| 3 | Dylan Groenewegen | Wout van Aert | Wout van Aert | Magnus Cort | Tadej Pogačar | Team Jumbo–Visma | Magnus Cort |
| 4 | Wout van Aert | Wout van Aert | Wout van Aert | Magnus Cort | Tadej Pogačar | Team Jumbo–Visma | Anthony Perez |
| 5 | Simon Clarke | Wout van Aert | Wout van Aert | Magnus Cort | Tadej Pogačar | Ineos Grenadiers | Magnus Cort |
| 6 | Tadej Pogačar | Tadej Pogačar | Wout van Aert | Magnus Cort | Tadej Pogačar | Ineos Grenadiers | Wout van Aert |
| 7 | Tadej Pogačar | Tadej Pogačar | Wout van Aert | Magnus Cort | Tadej Pogačar | Ineos Grenadiers | Simon Geschke |
| 8 | Wout van Aert | Tadej Pogačar | Wout van Aert | Magnus Cort | Tadej Pogačar | Ineos Grenadiers | Mattia Cattaneo |
| 9 | Bob Jungels | Tadej Pogačar | Wout van Aert | Simon Geschke | Tadej Pogačar | Ineos Grenadiers | Thibaut Pinot |
| 10 | Magnus Cort | Tadej Pogačar | Wout van Aert | Simon Geschke | Tadej Pogačar | Ineos Grenadiers | Alberto Bettiol |
| 11 | Jonas Vingegaard | Jonas Vingegaard | Wout van Aert | Simon Geschke | Tadej Pogačar | Ineos Grenadiers | Warren Barguil |
| 12 | Tom Pidcock | Jonas Vingegaard | Wout van Aert | Simon Geschke | Tadej Pogačar | Ineos Grenadiers | Tom Pidcock |
| 13 | Mads Pedersen | Jonas Vingegaard | Wout van Aert | Simon Geschke | Tadej Pogačar | Ineos Grenadiers | Mads Pedersen |
| 14 | Michael Matthews | Jonas Vingegaard | Wout van Aert | Simon Geschke | Tadej Pogačar | Ineos Grenadiers | Michael Matthews |
| 15 | Jasper Philipsen | Jonas Vingegaard | Wout van Aert | Simon Geschke | Tadej Pogačar | Ineos Grenadiers | Nils Politt |
| 16 | Hugo Houle | Jonas Vingegaard | Wout van Aert | Simon Geschke | Tadej Pogačar | Ineos Grenadiers | Hugo Houle |
| 17 | Tadej Pogačar | Jonas Vingegaard | Wout van Aert | Simon Geschke | Tadej Pogačar | Ineos Grenadiers | Brandon McNulty |
| 18 | Jonas Vingegaard | Jonas Vingegaard | Wout van Aert | Jonas Vingegaard | Tadej Pogačar | Ineos Grenadiers | Wout van Aert |
| 19 | Christophe Laporte | Jonas Vingegaard | Wout van Aert | Jonas Vingegaard | Tadej Pogačar | Ineos Grenadiers | Quinn Simmons |
| 20 | Wout van Aert | Jonas Vingegaard | Wout van Aert | Jonas Vingegaard | Tadej Pogačar | Ineos Grenadiers | no award |
| 21 | Jasper Philipsen | Jonas Vingegaard | Wout van Aert | Jonas Vingegaard | Tadej Pogačar | Ineos Grenadiers | no award |
| Final | Final | Jonas Vingegaard | Wout van Aert | Jonas Vingegaard | Tadej Pogačar | Ineos Grenadiers | Wout van Aert |
* ↑ On stage 2, Wout van Aert, who was second in the points classification, wore the green jersey, because first placed Yves Lampaert wore the yellow jersey as the leader of the general classification.
* ↑ On stages 7–11, Tom Pidcock, who was second in the young rider classification, wore the white jersey, because first placed Tadej Pogačar wore the yellow jersey as the leader of the general classification.
* ↑ On stages 3–6, Fabio Jakobsen, who was second in the points classification, wore the green jersey, because first placed Wout van Aert wore the yellow jersey as the leader of the general classification.
* ↑ On stages 19–21, Simon Geschke, who was second in the mountains classification, wore the polka dot jersey, because first placed Jonas Vingegaard wore the yellow jersey as the leader of the general classification.

## Final classification standings

Legend :
| Denotes the leader of the general classification | Denotes the leader of the mountains classification |
| Denotes the leader of the points classification | Denotes the leader of the young rider classification |
| Denotes the leader of the team classification | Denotes the winner of the combativity award |

### General classification

Final general classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Jonas Vingegaard (DEN) | Team Jumbo–Visma | 79h 33' 20" |
| 2 | Tadej Pogačar (SLO) | UAE Team Emirates | + 2' 43" |
| 3 | Geraint Thomas (GBR) | Ineos Grenadiers | + 7' 22" |
| 4 | David Gaudu (FRA) | Groupama–FDJ | + 13' 39" |
| 5 | Aleksandr Vlasov | Bora–Hansgrohe | + 15' 46" |
| DSQ | Nairo Quintana (COL) | Arkéa–Samsic | + 16' 33" |
| 6 | Romain Bardet (FRA) | Team DSM | + 18' 11" |
| 7 | Louis Meintjes (RSA) | Intermarché–Wanty–Gobert Matériaux | + 18' 44" |
| 8 | Alexey Lutsenko (KAZ) | Astana Qazaqstan Team | + 22' 56" |
| 9 | Adam Yates (GBR) | Ineos Grenadiers | + 24' 52" |
| 10 | Valentin Madouas (FRA) | Groupama–FDJ | + 35' 59" |
Final general classification (11–134) :
| Rank | Rider | Team | Time |
| 11 | Bob Jungels (LUX) | AG2R Citroën Team | + 45' 23" |
| 12 | Neilson Powless (USA) | EF Education–EasyPost | + 46' 57" |
| 13 | Luis León Sánchez (ESP) | Team Bahrain Victorious | + 49' 18" |
| 14 | Thibaut Pinot (FRA) | Groupama–FDJ | + 50' 25" |
| 15 | Patrick Konrad (AUT) | Bora–Hansgrohe | + 56' 54" |
| 16 | Tom Pidcock (GBR) | Ineos Grenadiers | + 1h 01' 15" |
| 17 | Sepp Kuss (USA) | Team Jumbo–Visma | + 1h 02' 29" |
| 18 | Dylan Teuns (BEL) | Team Bahrain Victorious | + 1h 11' 30" |
| 19 | Brandon McNulty (USA) | UAE Team Emirates | + 1h 31' 19" |
| 20 | Matteo Jorgenson (USA) | Movistar Team | + 1h 33' 57" |
| 21 | Wout van Aert (BEL) | Team Jumbo–Visma | + 1h 35' 55" |
| 22 | Nick Schultz (AUS) | Team BikeExchange–Jayco | + 1h 39' 41" |
| 23 | Hugo Houle (CAN) | Israel–Premier Tech | + 1h 42' 14" |
| 24 | Bauke Mollema (NLD) | Trek–Segafredo | + 1h 45' 57" |
| 25 | Rigoberto Urán (COL) | EF Education–EasyPost | + 1h 48' 18" |
| 26 | Carlos Verona (ESP) | Movistar Team | + 1h 53' 03" |
| 27 | Andreas Leknessund (NOR) | Team DSM | + 1h 57' 31" |
| 28 | Gregor Mühlberger (AUT) | Movistar Team | + 1h 59' 03" |
| 29 | Daniel Martínez (COL) | Ineos Grenadiers | + 2h 00' 55" |
| 30 | Simone Velasco (ITA) | Astana Qazaqstan Team | + 2h 04' 24" |
| 31 | Dylan van Baarle (NLD) | Ineos Grenadiers | + 2h 15' 34" |
| 32 | Stefan Küng (SUI) | Groupama–FDJ | + 2h 15' 46" |
| 33 | Sebastian Schönberger (AUT) | B&B Hotels–KTM | + 2h 16' 55" |
| 34 | Michael Storer (AUS) | Groupama–FDJ | + 2h 23' 15" |
| 35 | Tiesj Benoot (BEL) | Team Jumbo–Visma | + 2h 23' 34" |
| 36 | Tony Gallopin (FRA) | Trek–Segafredo | + 2h 25' 11" |
| 37 | Chris Hamilton (AUS) | Team DSM | + 2h 25' 38" |
| 38 | Andrey Zeits (KAZ) | Astana Qazaqstan Team | + 2h 26' 22" |
| 39 | Ion Izagirre (ESP) | Cofidis | + 2h 30' 08" |
| 40 | Alberto Bettiol (ITA) | EF Education–EasyPost | + 2h 34' 44" |
| 41 | Łukasz Owsian (POL) | Arkéa–Samsic | + 2h 37' 48" |
| 42 | Joe Dombrowski (USA) | Astana Qazaqstan Team | + 2h 37' 51" |
| 43 | Georg Zimmermann (GER) | Intermarché–Wanty–Gobert Matériaux | + 2h 39' 40" |
| 44 | Simon Geschke (GER) | Cofidis | + 2h 41' 23" |
| 45 | Max Schachmann (GER) | Bora–Hansgrohe | + 2h 44' 04" |
| 46 | Kobe Goossens (BEL) | Intermarché–Wanty–Gobert Matériaux | + 2h 46' 07" |
| 47 | Kevin Geniets (LUX) | Groupama–FDJ | + 2h 48' 08" |
| 48 | Jonathan Castroviejo (ESP) | Ineos Grenadiers | + 2h 51' 34" |
| 49 | Maxime Bouet (FRA) | Arkéa–Samsic | + 2h 51' 56" |
| 50 | Andrea Pasqualon (ITA) | Intermarché–Wanty–Gobert Matériaux | + 2h 56' 22" |
| 51 | Nelson Oliveira (POR) | Movistar Team | + 2h 57' 39" |
| 52 | Felix Großschartner (AUT) | Bora–Hansgrohe | + 2h 58' 15" |
| 53 | Benjamin Thomas (FRA) | Cofidis | + 3h 03' 38" |
| 54 | Fred Wright (GBR) | Team Bahrain Victorious | + 3h 04' 08" |
| 55 | Nils Politt (GER) | Bora–Hansgrohe | + 3h 10' 29" |
| 56 | Pierre Latour (FRA) | Team TotalEnergies | + 3h 12' 06" |
| 57 | Edvald Boasson Hagen (NOR) | Team TotalEnergies | + 3h 12' 58" |
| 58 | Giulio Ciccone (ITA) | Trek–Segafredo | + 3h 16' 44" |
| 59 | Silvan Dillier (SUI) | Alpecin–Deceuninck | + 3h 17' 17" |
| 60 | Toms Skujiņš (LAT) | Trek–Segafredo | + 3h 17' 28" |
| 61 | Antoine Duchesne (CAN) | Groupama–FDJ | + 3h 18' 18" |
| 62 | Pierre-Luc Périchon (FRA) | Cofidis | + 3h 25' 32" |
| 63 | Martijn Tusveld (NLD) | Team DSM | + 3h 28' 03" |
| 64 | Stan Dewulf (BEL) | AG2R Citroën Team | + 3h 29' 18" |
| 65 | Franck Bonnamour (FRA) | B&B Hotels–KTM | + 3h 30' 36" |
| 66 | Quinn Simmons (USA) | Trek–Segafredo | + 3h 30' 44" |
| 67 | Mathieu Burgaudeau (FRA) | Team TotalEnergies | + 3h 32' 06" |
| 68 | Pierre Rolland (FRA) | B&B Hotels–KTM | + 3h 34' 33" |
| 69 | Connor Swift (GBR) | Arkéa–Samsic | + 3h 35' 05" |
| 70 | Kristian Sbaragli (ITA) | Alpecin–Deceuninck | + 3h 36' 18" |
| 71 | Jan Tratnik (SLO) | Team Bahrain Victorious | + 3h 37' 31" |
| 72 | Andreas Kron (DEN) | Lotto–Soudal | + 3h 37' 37" |
| 73 | Matis Louvel (FRA) | Arkéa–Samsic | + 3h 40' 06" |
| 74 | Christophe Laporte (FRA) | Team Jumbo–Visma | + 3h 40' 10" |
| 75 | Philippe Gilbert (BEL) | Lotto–Soudal | + 3h 41' 54" |
| 76 | Guy Niv (ISR) | Israel–Premier Tech | + 3h 44' 22" |
| 77 | Michael Matthews (AUS) | Team BikeExchange–Jayco | + 3h 45' 59" |
| 78 | Krists Neilands (LAT) | Israel–Premier Tech | + 3h 46' 16" |
| 79 | Cyril Barthe (FRA) | B&B Hotels–KTM | + 3h 48' 34" |
| 80 | Jasper Stuyven (BEL) | Trek–Segafredo | + 3h 49' 28" |
| 81 | Hugo Hofstetter (FRA) | Arkéa–Samsic | + 3h 49' 57" |
| 82 | Stefan Bissegger (SUI) | EF Education–EasyPost | + 3h 51' 46" |
| 83 | Anthony Perez (FRA) | Cofidis | + 3h 52' 20" |
| 84 | Amaury Capiot (BEL) | Arkéa–Samsic | + 3h 52' 55" |
| 85 | Matej Mohorič (SLO) | Team Bahrain Victorious | + 3h 52' 57" |
| 86 | Marco Haller (AUT) | Bora–Hansgrohe | + 3h 53' 05" |
| 87 | Olivier Le Gac (FRA) | Groupama–FDJ | + 3h 56' 05" |
| 88 | Alexis Gougeard (FRA) | B&B Hotels–KTM | + 3h 58' 15" |
| 89 | Owain Doull (GBR) | EF Education–EasyPost | + 3h 58' 19" |
| 90 | Benoît Cosnefroy (FRA) | AG2R Citroën Team | + 3h 58' 31" |
| 91 | Jasper Philipsen (BEL) | Alpecin–Deceuninck | + 3h 59' 10" |
| 92 | Sven Erik Bystrøm (NOR) | Intermarché–Wanty–Gobert Matériaux | + 3h 59' 19" |
| 93 | Jonas Rutsch (GER) | EF Education–EasyPost | + 3h 59' 21" |
| 94 | Filippo Ganna (ITA) | Ineos Grenadiers | + 4h 03' 31" |
| 95 | Mattia Cattaneo (ITA) | Quick-Step Alpha Vinyl Team | + 4h 03' 52" |
| 96 | Aleksandr Riabushenko | Astana Qazaqstan Team | + 4h 04' 20" |
| 97 | Andrea Bagioli (ITA) | Quick-Step Alpha Vinyl Team | + 4h 10' 00" |
| 98 | Mads Pedersen (DEN) | Trek–Segafredo | + 4h 11' 50" |
| 99 | Alberto Dainese (ITA) | Team DSM | + 4h 14' 14" |
| 100 | Luka Mezgec (SLO) | Team BikeExchange–Jayco | + 4h 16' 13" |
| 101 | Alexander Kristoff (NOR) | Intermarché–Wanty–Gobert Matériaux | + 4h 17' 14" |
| 102 | Luca Mozzato (ITA) | B&B Hotels–KTM | + 4h 18' 54" |
| 103 | Alexander Krieger (GER) | Alpecin–Deceuninck | + 4h 19' 42" |
| 104 | John Degenkolb (GER) | Team DSM | + 4h 23' 05" |
| 105 | Luke Rowe (GBR) | Ineos Grenadiers | + 4h 26' 40" |
| 106 | Florian Sénéchal (FRA) | Quick-Step Alpha Vinyl Team | + 4h 28' 14" |
| 107 | Florian Vermeersch (BEL) | Lotto–Soudal | + 4h 28' 53" |
| 108 | Danny van Poppel (NLD) | Bora–Hansgrohe | + 4h 30' 28" |
| 109 | Edward Planckaert (BEL) | Alpecin–Deceuninck | + 4h 33' 44" |
| 110 | Adrien Petit (FRA) | Intermarché–Wanty–Gobert Matériaux | + 4h 35' 05" |
| 111 | Mikkel Frølich Honoré (DEN) | Quick-Step Alpha Vinyl Team | + 4h 36' 55" |
| 112 | Cyril Lemoine (FRA) | B&B Hotels–KTM | + 4h 37' 29" |
| 113 | Dmitriy Gruzdev (KAZ) | Astana Qazaqstan Team | + 4h 37' 36" |
| 114 | Maciej Bodnar (POL) | Team TotalEnergies | + 4h 39' 32" |
| 115 | Peter Sagan (SVK) | Team TotalEnergies | + 4h 39' 48" |
| 116 | Dylan Groenewegen (NLD) | Team BikeExchange–Jayco | + 4h 40' 55" |
| 117 | Kamil Gradek (POL) | Team Bahrain Victorious | + 4h 42' 46" |
| 118 | Nils Eekhoff (NLD) | Team DSM | + 4h 42' 46" |
| 119 | Yves Lampaert (BEL) | Quick-Step Alpha Vinyl Team | + 4h 46' 14" |
| 120 | Brent Van Moer (BEL) | Lotto–Soudal | + 4h 49' 07" |
| 121 | Jack Bauer (NZL) | Team BikeExchange–Jayco | + 4h 51' 05" |
| 122 | Guillaume Van Keirsbulck (BEL) | Alpecin–Deceuninck | + 4h 54' 12" |
| 123 | Mikkel Bjerg (DEN) | UAE Team Emirates | + 5h 00' 13" |
| 124 | Taco van der Hoorn (NLD) | Intermarché–Wanty–Gobert Matériaux | + 5h 02' 34" |
| 125 | Jérémy Lecroq (FRA) | B&B Hotels–KTM | + 5h 13' 49" |
| 126 | Marc Hirschi (SUI) | UAE Team Emirates | + 5h 15' 09" |
| 127 | Christopher Juul-Jensen (DEN) | Team BikeExchange–Jayco | + 5h 15' 26" |
| 128 | Anthony Turgis (FRA) | Team TotalEnergies | + 5h 20' 17" |
| 129 | Fabio Jakobsen (NLD) | Quick-Step Alpha Vinyl Team | + 5h 23' 38" |
| 130 | Frederik Frison (BEL) | Lotto–Soudal | + 5h 30' 19" |
| 131 | Reinardt Janse van Rensburg (RSA) | Lotto–Soudal | + 5h 31' 25" |
| 132 | Amund Grøndahl Jansen (NOR) | Team BikeExchange–Jayco | + 5h 31' 27" |
| 133 | Albert Torres (ESP) | Movistar Team | + 5h 36' 33" |
| 134 | Caleb Ewan (AUS) | Lotto–Soudal | + 5h 40' 42" |

### Points classification

Final points classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Wout van Aert (BEL) | Team Jumbo–Visma | 480 |
| 2 | Jasper Philipsen (BEL) | Alpecin–Deceuninck | 286 |
| 3 | Tadej Pogačar (SLO) | UAE Team Emirates | 250 |
| 4 | Christophe Laporte (FRA) | Team Jumbo–Visma | 171 |
| 5 | Fabio Jakobsen (NED) | Quick-Step Alpha Vinyl Team | 159 |
| 6 | Mads Pedersen (DEN) | Trek–Segafredo | 158 |
| 7 | Jonas Vingegaard (DEN) | Team Jumbo–Visma | 157 |
| 8 | Michael Matthews (AUS) | Team BikeExchange–Jayco | 133 |
| 9 | Peter Sagan (SVK) | Team TotalEnergies | 120 |
| 10 | Dylan Groenewegen (NED) | Team BikeExchange–Jayco | 116 |

### Mountains classification

Final mountains classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Jonas Vingegaard (DEN) | Team Jumbo–Visma | 72 |
| 2 | Simon Geschke (GER) | Cofidis | 65 |
| 3 | Giulio Ciccone (ITA) | Trek–Segafredo | 61 |
| 4 | Tadej Pogačar (SLO) | UAE Team Emirates | 61 |
| 5 | Wout van Aert (BEL) | Team Jumbo–Visma | 59 |
| 6 | Thibaut Pinot (FRA) | Groupama–FDJ | 52 |
| 7 | Louis Meintjes (RSA) | Intermarché–Wanty–Gobert Matériaux | 39 |
| 8 | Neilson Powless (USA) | EF Education–EasyPost | 37 |
| 9 | Pierre Latour (FRA) | Team TotalEnergies | 35 |
| 10 | Geraint Thomas (GBR) | Ineos Grenadiers | 32 |

### Young rider classification

Final young rider classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Tadej Pogačar (SLO) | UAE Team Emirates | 79h 36' 03" |
| 2 | Tom Pidcock (GBR) | Ineos Grenadiers | + 58' 32" |
| 3 | Brandon McNulty (USA) | UAE Team Emirates | + 1h 28' 36" |
| 4 | Matteo Jorgenson (USA) | Movistar Team | + 1h 31' 14" |
| 5 | Andreas Leknessund (NOR) | Team DSM | + 1h 54' 48" |
| 6 | Michael Storer (AUS) | Groupama–FDJ | + 2h 20' 32" |
| 7 | Georg Zimmermann (GER) | Intermarché–Wanty–Gobert Matériaux | + 2h 36' 57" |
| 8 | Kevin Geniets (LUX) | Groupama–FDJ | + 2h 45' 25" |
| 9 | Fred Wright (GBR) | Team Bahrain Victorious | + 3h 01' 25" |
| 10 | Stan Dewulf (BEL) | AG2R Citroën Team | + 3h 26' 35" |

### Team classification

Final team classification (1–10) :
| Rank | Team | Time |
| 1 | Ineos Grenadiers | 239h 03' 03" |
| 2 | Groupama–FDJ | + 37' 33" |
| 3 | Team Jumbo–Visma | + 44' 54" |
| 4 | Bora–Hansgrohe | + 1h 48' 45" |
| 5 | Movistar Team | + 2h 11' 22" |
| 6 | UAE Team Emirates | + 2h 19' 54" |
| 7 | Team Bahrain Victorious | + 2h 58' 32" |
| 8 | Team DSM | + 3h 26' 08" |
| 9 | Arkéa–Samsic | + 3h 56' 51" |
| 10 | Astana Qazaqstan Team | + 3h 59' 00" |