# 2024 Tour de France

The 2024 Tour de France was the 111th edition of the Tour de France. It started in Florence, Italy, on 29 June, and finished in Nice, France, on 21 July. The race did not finish in (or near) Paris for the first time since its inception, owing to preparations for the 2024 Summer Olympics in Paris.
Tadej Pogačar won the general classification, his third victory after 2020 and 2021 and a return to the top spot after placing second in 2022 and 2023. Pogačar won six stages, including the last three. Second and third place were taken by Jonas Vingegaard (Visma–Lease a Bike) and tour debutant Remco Evenepoel (Soudal–Quick-Step). Pogačar's team, UAE Team Emirates, won the team classification.
The race began with three stages in Italy before entering France. The first two stages were won by French riders. Romain Bardet narrowly won the opening stage from a breakaway with teammate Frank van den Broek, five seconds ahead of the peloton, to earn the first yellow jersey. Kévin Vauquelin won the second stage, but Pogačar claimed the race lead. In Stage 3, Pogačar relinquished the race lead to Richard Carapaz, but then won Stage 4, from Pinerolo (Italy) to Valloire, to regain it. He remained in yellow all the way to the finish in Nice, winning five more stages along the way, including the final time trial. Sprinters Biniam Girmay and Jasper Philipsen won three stages each. Pogačar, who finished 6 minutes and 17 seconds ahead of two-time winner Vingegaard, became the first rider to win both the Tour de France and Giro d'Italia in the same year since Marco Pantani in 1998.
Girmay won the points classification; Carapaz won the mountains classification and the overall combativity award; and Evenepoel won the young rider classification. Mark Cavendish won the 5th stage, his 35th stage victory at the Tour de France, breaking the record of 34 stage wins held by Eddy Merckx since 1975. In recognition of both this record and his long and popular career in the Tour a special presentation was made to Mark Cavendish on the final podium, a framed black cycling jersey bearing the Tour de France logo and the letters "CAXXXV" (XXXV being Roman numerals for 35).

## Teams

Twenty-two teams took part in the race. All 18 UCI WorldTeams were automatically invited. They were joined by four UCI ProTeams: the two highest placed UCI ProTeams in 2023 (Lotto–Dstny and Israel–Premier Tech), along with Uno-X Mobility and Team TotalEnergies who were selected by Amaury Sport Organisation (ASO), the organisers of the Tour. The teams were announced on 18 January 2024.
UCI WorldTeams
* Alpecin–Deceuninck
* Arkéa–B&B Hotels
* Astana Qazaqstan Team
* Cofidis
* Decathlon–AG2R La Mondiale
* EF Education–EasyPost
* Groupama–FDJ
* Ineos Grenadiers
* Intermarché–Wanty
* Lidl–Trek
* Movistar Team
* Red Bull–Bora–Hansgrohe
* Soudal–Quick-Step
* Team Bahrain Victorious
* Team dsm–firmenich PostNL
* Team Jayco–AlUla
* Visma–Lease a Bike
* UAE Team Emirates
UCI ProTeams
* Israel–Premier Tech
* Lotto–Dstny
* Team TotalEnergies
* Uno-X Mobility

## Route and stages

Italy hosted the Grand Départ for the first time. 2024 is the 100th anniversary of the first Italian victory in the Tour, won by Ottavio Bottecchia in 1924. The route also visited the microstate of San Marino, making it the 14th country to be visited by a Tour stage. The race did not finish in Paris, owing to preparations for the Paris 2024 Olympic and Paralympic Games, which started on 26 July. Instead, the tour finished in Nice with an individual time trial—the last time a time trial was the final stage in the Tour was in 1989. In October 2023, Christian Prudhomme announced the full route. The route was described as "tough" by riders, with particular concern for the gravel tracks on stage 9 and limited opportunities for sprinters.
Stage characteristics :
| Stage | Date | Course | Distance | Type | Type | Winner |
| 1 | 29 June | Florence (Italy) to Rimini (Italy) | 206 km (128 mi) | | Hilly stage | Romain Bardet (FRA) |
| 2 | 30 June | Cesenatico (Italy) to Bologna (Italy) | 199.2 km (123.8 mi) | | Hilly stage | Kévin Vauquelin (FRA) |
| 3 | 1 July | Piacenza (Italy) to Turin (Italy) | 230.8 km (143.4 mi) | | Flat stage | Biniam Girmay (ERI) |
| 4 | 2 July | Pinerolo (Italy) to Valloire | 139.6 km (86.7 mi) | | Mountain stage | Tadej Pogačar (SLO) |
| 5 | 3 July | Saint-Jean-de-Maurienne to Saint-Vulbas | 177.4 km (110.2 mi) | | Flat stage | Mark Cavendish (GBR) |
| 6 | 4 July | Mâcon to Dijon | 163.5 km (101.6 mi) | | Flat stage | Dylan Groenewegen (NED) |
| 7 | 5 July | Nuits-Saint-Georges to Gevrey-Chambertin | 25.3 km (15.7 mi) | | Individual time trial | Remco Evenepoel (BEL) |
| 8 | 6 July | Semur-en-Auxois to Colombey-les-Deux-Églises | 183.4 km (114.0 mi) | | Flat stage | Biniam Girmay (ERI) |
| 9 | 7 July | Troyes to Troyes | 199 km (124 mi) | | Hilly stage | Anthony Turgis (FRA) |
| | 8 July | Orléans | Rest day | Rest day | Rest day | Rest day |
| 10 | 9 July | Orléans to Saint-Amand-Montrond | 187.3 km (116.4 mi) | | Flat stage | Jasper Philipsen (BEL) |
| 11 | 10 July | Évaux-les-Bains to Le Lioran | 211 km (131 mi) | | Mountain stage | Jonas Vingegaard (DEN) |
| 12 | 11 July | Aurillac to Villeneuve-sur-Lot | 203.6 km (126.5 mi) | | Flat stage | Biniam Girmay (ERI) |
| 13 | 12 July | Agen to Pau | 165.3 km (102.7 mi) | | Flat stage | Jasper Philipsen (BEL) |
| 14 | 13 July | Pau to Saint-Lary-Soulan (Pla d'Adet) | 151.9 km (94.4 mi) | | Mountain stage | Tadej Pogačar (SLO) |
| 15 | 14 July | Loudenvielle to Plateau de Beille | 197.7 km (122.8 mi) | | Mountain stage | Tadej Pogačar (SLO) |
| | 15 July | Gruissan | Rest day | Rest day | Rest day | Rest day |
| 16 | 16 July | Gruissan to Nîmes | 188.6 km (117.2 mi) | | Flat stage | Jasper Philipsen (BEL) |
| 17 | 17 July | Saint-Paul-Trois-Châteaux to SuperDévoluy | 177.8 km (110.5 mi) | | Mountain stage | Richard Carapaz (ECU) |
| 18 | 18 July | Gap to Barcelonnette | 179.5 km (111.5 mi) | | Hilly stage | Victor Campenaerts (BEL) |
| 19 | 19 July | Embrun to Isola 2000 | 144.6 km (89.9 mi) | | Mountain stage | Tadej Pogačar (SLO) |
| 20 | 20 July | Nice to Col de la Couillole | 132.8 km (82.5 mi) | | Mountain stage | Tadej Pogačar (SLO) |
| 21 | 21 July | Monaco to Nice | 33.7 km (20.9 mi) | | Individual time trial | Tadej Pogačar (SLO) |
| Total | Total | Total | 3,498 km (2,174 mi) | | | |

## Race overview
### Week one

The first stage, dedicated to Marco Pantani, left Florence on 29 June. 50 km (31 mi) from the finish line in Rimini, French rider Romain Bardet broke away from the leader's group with his teammate Frank van den Broek and held onto a slim lead on the peloton for the remainder of the race. It was the first time Bardet had earned the right to wear the yellow jersey, in what he had announced would be his final season on the tour.
Another Frenchman, Kévin Vauquelin, won the second stage, distancing rivals in the final 1.9 km (1.2 mi) climb (10.6% grade) up to the sanctuary of the Madonna di San Luca in Bologna. Nevertheless, it was Tadej Pogačar who finished the day with the yellow jersey, distancing Romain Bardet in the final ascent, with only Jonas Vingegaard keeping pace.
The longest stage of the tour took place the following day on a flat route through the Piedmont countryside. After 165 kilometres (103 mi), another French rider, Fabien Grellier, attempted a breakaway, only to be caught by the peloton in under half an hour. The final sprint in Turin to reach the finish line caused a jumbled-up crash, which hurt the chances of some of the sprinters. The Eritrean rider Biniam Girmay crossed the finish line first, becoming the first Black African to win a stage on the Tour. The reigning Olympic road race champion Richard Carapaz finished the day atop the overall standings, becoming the first Ecuadorian to wear the Tour's yellow jersey.
Stage 4 included the climb of the Col du Galibier. Tadej Pogačar's UAE team-mates controlled the pace, laying the foundation for a Pogačar attack about 900 metres (3,000 ft) from the summit. Only Jonas Vingegaard was initially able to keep up with Pogačar, but reached the summit eight seconds behind him. Over the remaining 18 kilometres (11 mi) to Valloire, Pogačar extended the gap, eventually crossing the finish line 35 seconds ahead of Remco Evenepoel, Juan Ayuso and Primož Roglič, with Vingegaard a further two seconds back. Time bonuses gained on the Galibier and at the finish meant Pogačar held a 45-second overall lead over Evenepoel with Vingegaard third at 50 seconds.
The next stage, from Saint-Jean-de-Maurienne to Saint-Vulbas, was a return to flat terrain. It was won by sprinter Mark Cavendish, taking his 35th Tour de France stage win – the most in the Tour history, passing Eddy Merckx, with whom he had been tied since 2021. Tadej Pogačar maintained his lead overall. A windy stage 6 through the Burgundy vineyards from Mâcon to Dijon was won by a tire-width by Dylan Groenewegen in a sprint finish, while Pogačar maintained his overall lead.
Stage 7 was a 25.3 km (15.7 mi) individual time trial from Nuits-Saint-Georges to Gevrey-Chambertin, won by world time trial champion Remco Evenepoel, 12 seconds ahead of Tadej Pogačar. In the general classification, there was no change in the top three positions: Pogačar led from Evenepoel and Vingegaard.

### Week two

Stage 8 was 183.4 km (114.0 mi) from Semur-en-Auxois to Colombey-les-Deux-Églises. A breakaway by mountains classification leader Jonas Abrahamsen was reeled in by the peloton with 5km remaining. In the subsequent sprint, Biniam Girmay took his second stage win of the race, followed by Jasper Philipsen and Arnaud De Lie. There was no change in standings for the overall lead.
7 July saw a chaotic stage 9, 199 km (124 mi) with multiple sections of gravel road near Troyes. A breakaway group was successful, with Frenchman Anthony Turgis winning the stage, Tom Pidcock coming second and Derek Gee third. Pogačar attacked his rivals in the general classification but their positions did not change. This stage was followed by a rest day.
Stage 10 ended in a bunched sprint finish in Saint-Amand-Montrond after a 187.3 km (116.4 mi) race from Orléans. Jasper Philipsen won the stage, beating Girmay (wearing the green jersey) and Pascal Ackermann to the line, with no changes to the leaders in the overall standings.
In contrast, stage 11 saw a major shake-up among the leading contenders. Described as the toughest stage of the Tour so far, the mountainous route ran for 211 km (131 mi) from Évaux-les-Bains to Le Lioran. Overall leader Pogačar instigated a long-range solo attack 600m from a summit at Puy Mary, but Jonas Vingegaard caught Pogačar, while Roglič crashed on a damp hairpin bend. Vingegaard out-sprinted Pogačar at the finish in the Massif Central. It was Vingegaard's first stage win of the 2024 Tour; he had sustained life-threatening injuries in April's Tour of the Basque Country. Evenepoel and Roglič finished together in joint third, 25 seconds behind the leading pair, and 1m 47s ahead of a group of five led by Giulio Ciccone.
Stages 12 and 13 both concluded with controversial sprint finishes. After 203.6 km (126.5 mi) from Aurillac to Villeneuve-sur-Lot, Girmay took his third stage win in 11 days on a hot stage 12 ahead of Wout van Aert and Ackerman. Cavendish was demoted from fifth place by the race jury for "deviation from the chosen line, that obstructs or endangers another rider". Roglič crashed in the bunch 11km from the end of the stage, finishing 2min 15sec behind and dropping to sixth overall, 4min 42sec behind Pogačar. Overnight, Roglič retired from the race due to his injuries. Stage 13, 165.3 km (102.7 mi) from Agen to Pau, was won by Philipsen from van Aert, Ackerman and Girmay. Philipsen was criticised by his rivals; Ackermann refused to shake Philipsen's hand after the stage, insisting he should be punished by the officials for the same offence as Cavendish had been.
Stage 14, 151.9 km (94.4 mi) from Pau to Saint-Lary-Soulan (Pla d'Adet) in the Hautes Pyrenees, saw Pogačar increase his lead in the general classification. He finished 39 seconds ahead of Vingegaard, having made a solo attack just under five kilometres from the high-altitude ski station finish. Evenepoel finished third, a further 31 seconds behind Vingegaard. It was the ninth time that Pogačar and Vingegaard had finished first and second in a Tour stage. In the overall standings, Vingegaard took second place from Evenepoel, who slipped to third. The same three riders finished in the same order on stage 15 on 14 July, 197.7 km (122.8 mi) from Loudenvielle to a summit finish at Plateau de Beille. Pogačar broke away from Vingegaard with around 5km of the stage remaining, setting a time of 39min 41sec for the ascent, eclipsing Marco Pantani's record for the same course set in 1998 (43min 20sec). Pogačar's overall lead over Vingegaard increased to more than three minutes, with Evenepoel five minutes behind.

### Week three

After a rest day in Gruissan, stage 16 on 16 July was 188.6 km (117.2 mi) from Gruissan to Nîmes. The leading riders remained in the peloton until a sprint finish, in which Philipsen won his third stage. This matched the number of stage wins by fellow sprinter and green jersey leader Girmay, who crashed on the run-in to the finish. There was no change in the overall standings.
Stage 17 was a mountain stage, 177.8 km (110.5 mi) in Superdévoluy. British rider Simon Yates attacked on the day's toughest climb, the Col du Noyer, but was caught by Carapaz. Carapaz eventually left Yates behind, finishing first by 37 seconds, with Enric Mas a further 20 seconds back in third. Pogačar made a small attack but it only served to help third overall Evenepoel win back a few seconds in the general classification against a faltering Vingegaard.
The 179.5 km (111.5 mi) stage 18 from Gap to Barcelonnette saw a successful breakaway by three riders: Victor Campenaerts, French rider Mattéo Vercher and former world champion Michał Kwiatkowski, who finished in that order. The leading positions in the overall standings remained unchanged.
Pogačar dominated the final three stages, winning all of them. Stages 19 and 20 were both Alpine mountain stages. Carapaz participated in a breakaway on stage 19, which earned him the King of the Mountains jersey for the first time. However Carapaz, Simon Yates, and Matteo Jorgenson were overtaken by Pogačar on the final climb to Isola 2000 in the Mercantour Alps. It was Pogačar 's tenth stage win in 2024 Grand Tours, and extended his overall lead to more than five minutes. Stage 20 the following day was the race's final mountain stage, finishing up the Col de la Couillole in the Alpes Maritimes. Pogačar won again, ahead of Vingegaard who finished second. The Tour's final stage was a 33.7 km (20.9 mi) individual time trial from Monaco to Nice on 21 July. Pogačar beat both Vingegaard and young rider classification winner Evenepoel by over a minute, taking overall victory by more than six minutes. It was the first time since Marco Pantani in 1998 that the same rider had won both the Giro d'Italia and Tour de France in the same year. Pogačar's UAE Team Emirates won the team classification.

## Classification leadership

Classification leadership by stage :
| Stage | Winner | General classification | Points classification | Mountains classification | Young rider classification | Team classification | Combativity award |
| 1 | Romain Bardet | Romain Bardet | Frank van den Broek | Jonas Abrahamsen | Frank van den Broek | Team dsm–firmenich PostNL | Frank van den Broek |
| 2 | Kévin Vauquelin | Tadej Pogačar | Jonas Abrahamsen | Jonas Abrahamsen | Remco Evenepoel | Movistar Team | Jonas Abrahamsen |
| 3 | Biniam Girmay | Richard Carapaz | Jonas Abrahamsen | Jonas Abrahamsen | Remco Evenepoel | Movistar Team | Fabien Grellier |
| 4 | Tadej Pogačar | Tadej Pogačar | Jonas Abrahamsen | Jonas Abrahamsen | Remco Evenepoel | UAE Team Emirates | Oier Lazkano |
| 5 | Mark Cavendish | Tadej Pogačar | Biniam Girmay | Jonas Abrahamsen | Remco Evenepoel | UAE Team Emirates | Clément Russo |
| 6 | Dylan Groenewegen | Tadej Pogačar | Biniam Girmay | Jonas Abrahamsen | Remco Evenepoel | UAE Team Emirates | Mads Pedersen |
| 7 | Remco Evenepoel | Tadej Pogačar | Biniam Girmay | Jonas Abrahamsen | Remco Evenepoel | UAE Team Emirates | no award |
| 8 | Biniam Girmay | Tadej Pogačar | Biniam Girmay | Jonas Abrahamsen | Remco Evenepoel | UAE Team Emirates | Jonas Abrahamsen |
| 9 | Anthony Turgis | Tadej Pogačar | Biniam Girmay | Jonas Abrahamsen | Remco Evenepoel | UAE Team Emirates | Jasper Stuyven |
| 10 | Jasper Philipsen | Tadej Pogačar | Biniam Girmay | Jonas Abrahamsen | Remco Evenepoel | UAE Team Emirates | Kobe Goossens |
| 11 | Jonas Vingegaard | Tadej Pogačar | Biniam Girmay | Tadej Pogačar | Remco Evenepoel | UAE Team Emirates | Tadej Pogačar |
| 12 | Biniam Girmay | Tadej Pogačar | Biniam Girmay | Tadej Pogačar | Remco Evenepoel | UAE Team Emirates | Quentin Pacher |
| 13 | Jasper Philipsen | Tadej Pogačar | Biniam Girmay | Tadej Pogačar | Remco Evenepoel | UAE Team Emirates | Magnus Cort |
| 14 | Tadej Pogačar | Tadej Pogačar | Biniam Girmay | Tadej Pogačar | Remco Evenepoel | UAE Team Emirates | Ben Healy |
| 15 | Tadej Pogačar | Tadej Pogačar | Biniam Girmay | Tadej Pogačar | Remco Evenepoel | UAE Team Emirates | Richard Carapaz |
| 16 | Jasper Philipsen | Tadej Pogačar | Biniam Girmay | Tadej Pogačar | Remco Evenepoel | UAE Team Emirates | Thomas Gachignard |
| 17 | Richard Carapaz | Tadej Pogačar | Biniam Girmay | Tadej Pogačar | Remco Evenepoel | UAE Team Emirates | Romain Grégoire |
| 18 | Victor Campenaerts | Tadej Pogačar | Biniam Girmay | Tadej Pogačar | Remco Evenepoel | UAE Team Emirates | Tobias Halland Johannessen |
| 19 | Tadej Pogačar | Tadej Pogačar | Biniam Girmay | Richard Carapaz | Remco Evenepoel | UAE Team Emirates | Richard Carapaz |
| 20 | Tadej Pogačar | Tadej Pogačar | Biniam Girmay | Richard Carapaz | Remco Evenepoel | UAE Team Emirates | Enric Mas |
| 21 | Tadej Pogačar | Tadej Pogačar | Biniam Girmay | Richard Carapaz | Remco Evenepoel | UAE Team Emirates | no award |
| Final | Final | Tadej Pogačar | Biniam Girmay | Richard Carapaz | Remco Evenepoel | UAE Team Emirates | Richard Carapaz |
* ↑ On stages 3 and 4, Valentin Madouas, who was second in the mountains classification, wore the polka dot jersey, because first-placed Jonas Abrahamsen wore the green jersey as the leader of the points classification. Madouas also wore the polka dot jersey on stage 5 when third in the mountains classification, as first-placed Abrahamsen continued to wear the green jersey of points classification leader and second-placed Tadej Pogačar wore the yellow jersey as general classification leader.
* ↑ On stage 2, Maxim Van Gils, who was second in the young rider classification, wore the white jersey, because first-placed Frank van den Broek wore the green jersey as the leader of the points classification.
* ↑ From stages 12 to 19, the rider in second place in the mountains classification wore the polka dot jersey as Tadej Pogačar led both the general and mountains classifications, so was wearing the yellow jersey. On stages 12 to 14, the polka dot jersey was worn by Jonas Abrahamsen and on stages 15 to 19 by Jonas Vingegaard.

## Classification standings

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

### General classification

Final general classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Tadej Pogačar (SLO) | UAE Team Emirates | 83h 38' 56" |
| 2 | Jonas Vingegaard (DEN) | Visma–Lease a Bike | + 6' 17" |
| 3 | Remco Evenepoel (BEL) | Soudal–Quick-Step | + 9' 18" |
| 4 | João Almeida (POR) | UAE Team Emirates | + 19' 03" |
| 5 | Mikel Landa (ESP) | Soudal–Quick-Step | + 20' 06" |
| 6 | Adam Yates (GBR) | UAE Team Emirates | + 24' 07" |
| 7 | Carlos Rodríguez (ESP) | Ineos Grenadiers | + 25' 04" |
| 8 | Matteo Jorgenson (USA) | Visma–Lease a Bike | + 26' 34" |
| 9 | Derek Gee (CAN) | Israel–Premier Tech | + 27' 21" |
| 10 | Santiago Buitrago (COL) | Team Bahrain Victorious | + 29' 03" |
Final general classification (11–141) :
| Rank | Rider | Team | Time |
| 11 | Giulio Ciccone (ITA) | Lidl–Trek | + 30' 42" |
| 12 | Simon Yates (GBR) | Team Jayco–AlUla | + 39' 04" |
| 13 | Guillaume Martin (FRA) | Cofidis | + 43' 49" |
| 14 | Felix Gall (AUT) | Decathlon–AG2R La Mondiale | + 46' 12" |
| 15 | Laurens De Plus (BEL) | Ineos Grenadiers | + 46' 24" |
| 16 | Steff Cras (BEL) | Team TotalEnergies | + 49' 18" |
| 17 | Richard Carapaz (ECU) | EF Education–EasyPost | + 49' 24" |
| 18 | Jai Hindley (AUS) | Red Bull–Bora–Hansgrohe | + 57' 04" |
| 19 | Enric Mas (ESP) | Movistar Team | + 1h 11' 05" |
| 20 | Louis Meintjes (RSA) | Intermarché–Wanty | + 1h 11' 50" |
| 21 | Wilco Kelderman (NED) | Visma–Lease a Bike | + 1h 23' 11" |
| 22 | Julien Bernard (FRA) | Lidl–Trek | + 1h 37' 15" |
| 23 | Javier Romo (ESP) | Movistar Team | + 1h 42' 26" |
| 24 | Carlos Verona (ESP) | Lidl–Trek | + 1h 47' 13" |
| 25 | Valentin Madouas (FRA) | Groupama–FDJ | + 1h 51' 59" |
| 26 | Ilan Van Wilder (BEL) | Soudal–Quick-Step | + 1h 54' 30" |
| 27 | Ben Healy (IRL) | EF Education–EasyPost | + 1h 56' 12" |
| 28 | Jordan Jegat (FRA) | Team TotalEnergies | + 2h 02' 36" |
| 29 | Egan Bernal (COL) | Ineos Grenadiers | + 2h 03' 50" |
| 30 | Romain Bardet (FRA) | Team dsm–firmenich PostNL | + 2h 04' 25" |
| 31 | Jack Haig (AUS) | Team Bahrain Victorious | + 2h 11' 33" |
| 32 | Pavel Sivakov (FRA) | UAE Team Emirates | + 2h 14' 21" |
| 33 | Bruno Armirail (FRA) | Decathlon–AG2R La Mondiale | + 2h 15' 39" |
| 34 | Odd Christian Eiking (NOR) | Uno-X Mobility | + 2h 18' 34" |
| 35 | Tobias Halland Johannessen (NOR) | Uno-X Mobility | + 2h 21' 37" |
| 36 | Cristián Rodríguez (ESP) | Arkéa–B&B Hotels | + 2h 26' 59" |
| 37 | Bob Jungels (LUX) | Red Bull–Bora–Hansgrohe | + 2h 29' 05" |
| 38 | Jakob Fuglsang (DEN) | Israel–Premier Tech | + 2h 31' 42" |
| 39 | Oscar Onley (GBR) | Team dsm–firmenich PostNL | + 2h 41' 39" |
| 40 | Warren Barguil (FRA) | Team dsm–firmenich PostNL | + 2h 42' 13" |
| 41 | Romain Grégoire (FRA) | Groupama–FDJ | + 2h 43' 41" |
| 42 | Geraint Thomas (GBR) | Ineos Grenadiers | + 2h 47' 36" |
| 43 | Wout Poels (NED) | Team Bahrain Victorious | + 2h 54' 52" |
| 44 | Marc Soler (ESP) | UAE Team Emirates | + 2h 55' 47" |
| 45 | Toms Skujiņš (LAT) | Lidl–Trek | + 2h 57' 02" |
| 46 | Quentin Pacher (FRA) | Groupama–FDJ | + 3h 15' 07" |
| 47 | Johannes Kulset (NOR) | Uno-X Mobility | + 3h 17' 42" |
| 48 | Nicolas Prodhomme (FRA) | Decathlon–AG2R La Mondiale | + 3h 19' 25" |
| 49 | Tiesj Benoot (BEL) | Visma–Lease a Bike | + 3h 26' 11" |
| 50 | Hugo Houle (CAN) | Israel–Premier Tech | + 3h 26' 55" |
| 51 | Nelson Oliveira (POR) | Movistar Team | + 3h 33' 54" |
| 52 | Wout van Aert (BEL) | Visma–Lease a Bike | + 3h 35' 56" |
| 53 | Jonathan Castroviejo (ESP) | Ineos Grenadiers | + 3h 35' 58" |
| 54 | Michał Kwiatkowski (POL) | Ineos Grenadiers | + 3h 36' 34" |
| 55 | Jonas Abrahamsen (NOR) | Uno-X Mobility | + 3h 38' 58" |
| 56 | Gregor Mühlberger (AUT) | Movistar Team | + 3h 40' 17" |
| 57 | Magnus Cort (DEN) | Uno-X Mobility | + 3h 41' 57" |
| 58 | Kevin Geniets (LUX) | Groupama–FDJ | + 3h 44' 19" |
| 59 | Neilson Powless (USA) | EF Education–EasyPost | + 3h 45' 24" |
| 60 | Matteo Sobrero (ITA) | Red Bull–Bora–Hansgrohe | + 3h 46' 46" |
| 61 | Jasper Stuyven (BEL) | Lidl–Trek | + 3h 47' 39" |
| 62 | Frank van den Broek (NED) | Team dsm–firmenich PostNL | + 3h 48' 02" |
| 63 | Mathieu Burgaudeau (FRA) | Team TotalEnergies | + 3h 48' 17" |
| 64 | Jan Tratnik (SLO) | Visma–Lease a Bike | + 3h 48' 34" |
| 65 | David Gaudu (FRA) | Groupama–FDJ | + 3h 49' 23" |
| 66 | Krists Neilands (LAT) | Israel–Premier Tech | + 3h 52' 08" |
| 67 | Jan Hirt (CZE) | Soudal–Quick-Step | + 3h 54' 00" |
| 68 | Rui Costa (POR) | EF Education–EasyPost | + 3h 54' 10" |
| 69 | Kobe Goossens (BEL) | Intermarché–Wanty | + 3h 56' 05" |
| 70 | Bart Lemmen (NED) | Visma–Lease a Bike | + 3h 56' 28" |
| 71 | Alex Aranburu (ESP) | Movistar Team | + 3h 57' 53" |
| 72 | Davide Formolo (ITA) | Movistar Team | + 3h 59' 41" |
| 73 | Stephen Williams (GBR) | Israel–Premier Tech | + 3h 59' 57" |
| 74 | Harold Tejada (COL) | Astana Qazaqstan Team | + 4h 00' 13" |
| 75 | Nils Politt (GER) | UAE Team Emirates | + 4h 03' 21" |
| 76 | Nans Peters (FRA) | Decathlon–AG2R La Mondiale | + 4h 07' 39" |
| 77 | Georg Zimmermann (GER) | Intermarché–Wanty | + 4h 07' 59" |
| 78 | Sean Quinn (USA) | EF Education–EasyPost | + 4h 10' 38" |
| 79 | Oier Lazkano (ESP) | Movistar Team | + 4h 10' 41" |
| 80 | Tim Wellens (BEL) | UAE Team Emirates | + 4h 20' 49" |
| 81 | Victor Campenaerts (BEL) | Lotto–Dstny | + 4h 23' 21" |
| 82 | Dorian Godon (FRA) | Decathlon–AG2R La Mondiale | + 4h 23' 27" |
| 83 | Oliver Naesen (BEL) | Decathlon–AG2R La Mondiale | + 4h 23' 43" |
| 84 | Christophe Laporte (FRA) | Visma–Lease a Bike | + 4h 26' 27" |
| 85 | Marco Haller (AUT) | Red Bull–Bora–Hansgrohe | + 4h 26' 52" |
| 86 | Gianni Moscon (ITA) | Soudal–Quick-Step | + 4h 26' 54" |
| 87 | Ryan Gibbons (RSA) | Lidl–Trek | + 4h 28' 44" |
| 88 | Paul Lapeira (FRA) | Decathlon–AG2R La Mondiale | + 4h 28' 54" |
| 89 | Michael Matthews (AUS) | Team Jayco–AlUla | + 4h 30' 03" |
| 90 | Fabien Grellier (FRA) | Team TotalEnergies | + 4h 33' 40" |
| 91 | Kévin Vauquelin (FRA) | Arkéa–B&B Hotels | + 4h 33' 56" |
| 92 | Thomas Gachignard (FRA) | Team TotalEnergies | + 4h 38' 30" |
| 93 | Mike Teunissen (NED) | Intermarché–Wanty | + 4h 40' 14" |
| 94 | Simon Geschke (GER) | Cofidis | + 4h 40' 30" |
| 95 | Brent Van Moer (BEL) | Lotto–Dstny | + 4h 42' 29" |
| 96 | Mathieu van der Poel (NED) | Alpecin–Deceuninck | + 4h 44' 05" |
| 97 | Christopher Juul-Jensen (DEN) | Team Jayco–AlUla | + 4h 45' 12" |
| 98 | Raúl García Pierna (ESP) | Arkéa–B&B Hotels | + 4h 46' 12" |
| 99 | Axel Laurance (FRA) | Alpecin–Deceuninck | + 4h 46' 25" |
| 100 | Stefan Bissegger (SUI) | EF Education–EasyPost | + 4h 46' 55" |
| 101 | Clément Champoussin (FRA) | Arkéa–B&B Hotels | + 4h 49' 59" |
| 102 | Clément Russo (FRA) | Groupama–FDJ | + 4h 51' 24" |
| 103 | Mattéo Vercher (FRA) | Team TotalEnergies | + 4h 55' 14" |
| 104 | Bryan Coquard (FRA) | Cofidis | + 4h 56' 46" |
| 105 | Rasmus Tiller (NOR) | Uno-X Mobility | + 4h 56' 51" |
| 106 | Anthony Turgis (FRA) | Team TotalEnergies | + 4h 59' 48" |
| 107 | Gianni Vermeersch (BEL) | Alpecin–Deceuninck | + 5h 02' 07" |
| 108 | Axel Zingle (FRA) | Cofidis | + 5h 04' 30" |
| 109 | Marijn van den Berg (NED) | EF Education–EasyPost | + 5h 07' 55" |
| 110 | Nico Denz (GER) | Red Bull–Bora–Hansgrohe | + 5h 08' 12" |
| 111 | Nikias Arndt (GER) | Team Bahrain Victorious | + 5h 08' 28" |
| 112 | Pascal Ackermann (GER) | Israel–Premier Tech | + 5h 10' 14" |
| 113 | Biniam Girmay (ERI) | Intermarché–Wanty | + 5h 12' 47" |
| 114 | Piet Allegaert (BEL) | Cofidis | + 5h 16' 14" |
| 115 | Ben Turner (GBR) | Ineos Grenadiers | + 5h 17' 11" |
| 116 | Luka Mezgec (SLO) | Team Jayco–AlUla | + 5h 17' 26" |
| 117 | Hugo Page (FRA) | Intermarché–Wanty | + 5h 17' 59" |
| 118 | Laurenz Rex (BEL) | Intermarché–Wanty | + 5h 18' 20" |
| 119 | Arnaud De Lie (BEL) | Lotto–Dstny | + 5h 19' 56" |
| 120 | Danny van Poppel (NED) | Red Bull–Bora–Hansgrohe | + 5h 22' 16" |
| 121 | Cedric Beullens (BEL) | Lotto–Dstny | + 5h 23' 17" |
| 122 | John Degenkolb (GER) | Team dsm–firmenich PostNL | + 5h 24' 08" |
| 123 | Luke Durbridge (AUS) | Team Jayco–AlUla | + 5h 26' 37" |
| 124 | Lenny Martinez (FRA) | Groupama–FDJ | + 5h 26' 45" |
| 125 | Yves Lampaert (BEL) | Soudal–Quick-Step | + 5h 27' 51" |
| 126 | Silvan Dillier (SUI) | Alpecin–Deceuninck | + 5h 31' 21" |
| 127 | Matej Mohorič (SLO) | Team Bahrain Victorious | + 5h 33' 22" |
| 128 | Jasper Philipsen (BEL) | Alpecin–Deceuninck | + 5h 34' 33" |
| 129 | Sébastien Grignard (BEL) | Lotto–Dstny | + 5h 36' 52" |
| 130 | Harm Vanhoucke (BEL) | Lotto–Dstny | + 5h 37' 11" |
| 131 | Alexander Kristoff (NOR) | Uno-X Mobility | + 5h 39' 42" |
| 132 | Sandy Dujardin (FRA) | Team TotalEnergies | + 5h 40' 58" |
| 133 | Søren Wærenskjold (NOR) | Uno-X Mobility | + 5h 46' 24" |
| 134 | Robbe Ghys (BEL) | Alpecin–Deceuninck | + 5h 55' 14" |
| 135 | Dylan Groenewegen (NED) | Team Jayco–AlUla | + 5h 57' 41" |
| 136 | Daniel McLay (GBR) | Arkéa–B&B Hotels | + 5h 58' 08" |
| 137 | Luca Mozzato (ITA) | Arkéa–B&B Hotels | + 5h 59' 36" |
| 138 | Cees Bol (NED) | Astana Qazaqstan Team | + 6h 08' 11" |
| 139 | Jarrad Drizners (AUS) | Lotto–Dstny | + 6h 12' 21" |
| 140 | Davide Ballerini (ITA) | Astana Qazaqstan Team | + 6h 22' 46" |
| 141 | Mark Cavendish (GBR) | Astana Qazaqstan Team | + 6h 23' 11" |

### Points classification

Final points classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Biniam Girmay (ERI) | Intermarché–Wanty | 387 |
| 2 | Jasper Philipsen (BEL) | Alpecin–Deceuninck | 354 |
| 3 | Bryan Coquard (FRA) | Cofidis | 208 |
| 4 | Tadej Pogačar (SLO) | UAE Team Emirates | 196 |
| 5 | Anthony Turgis (FRA) | Team TotalEnergies | 180 |
| 6 | Arnaud De Lie (BEL) | Lotto–Dstny | 161 |
| 7 | Remco Evenepoel (BEL) | Soudal–Quick-Step | 152 |
| 8 | Wout van Aert (BEL) | Visma–Lease a Bike | 152 |
| 9 | Jonas Abrahamsen (NOR) | Uno-X Mobility | 149 |
| 10 | Jonas Vingegaard (DEN) | Visma–Lease a Bike | 136 |

### Mountains classification

Final mountains classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Richard Carapaz (ECU) | EF Education–EasyPost | 127 |
| 2 | Tadej Pogačar (SLO) | UAE Team Emirates | 102 |
| 3 | Jonas Vingegaard (DEN) | Visma–Lease a Bike | 70 |
| 4 | Matteo Jorgenson (USA) | Visma–Lease a Bike | 54 |
| 5 | Remco Evenepoel (BEL) | Soudal–Quick-Step | 50 |
| 6 | Wilco Kelderman (NED) | Visma–Lease a Bike | 43 |
| 7 | Oier Lazkano (ESP) | Movistar Team | 41 |
| 8 | Jonas Abrahamsen (NOR) | Uno-X Mobility | 36 |
| 9 | Enric Mas (ESP) | Movistar Team | 33 |
| 10 | David Gaudu (FRA) | Groupama–FDJ | 30 |

### Young rider classification

Final young rider classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Remco Evenepoel (BEL) | Soudal–Quick-Step | 83h 48' 14" |
| 2 | Carlos Rodríguez (ESP) | Ineos Grenadiers | + 15' 46" |
| 3 | Matteo Jorgenson (USA) | Visma–Lease a Bike | + 17' 16" |
| 4 | Santiago Buitrago (COL) | Team Bahrain Victorious | + 19' 45" |
| 5 | Javier Romo (ESP) | Movistar Team | + 1h 33' 08" |
| 6 | Ilan Van Wilder (BEL) | Soudal–Quick-Step | + 1h 45' 12" |
| 7 | Ben Healy (IRL) | EF Education–EasyPost | + 1h 46' 54" |
| 8 | Jordan Jegat (FRA) | Team TotalEnergies | + 1h 53' 18" |
| 9 | Tobias Halland Johannessen (NOR) | Uno-X Mobility | + 2h 12' 19" |
| 10 | Oscar Onley (GBR) | Team dsm–firmenich PostNL | + 2h 32' 21" |

### Team classification

Final team classification (1–10) :
| Rank | Team | Time |
| 1 | UAE Team Emirates | 251h 36' 43" |
| 2 | Visma–Lease a Bike | + 31' 51" |
| 3 | Soudal–Quick-Step | + 1h 33' 06" |
| 4 | Ineos Grenadiers | + 1h 34' 05" |
| 5 | Lidl–Trek | + 2h 33' 49" |
| 6 | Movistar Team | + 3h 10' 06" |
| 7 | Team Bahrain Victorious | + 3h 38' 21" |
| 8 | Red Bull–Bora–Hansgrohe | + 3h 57' 23" |
| 9 | Israel–Premier Tech | + 4h 01' 23" |
| 10 | EF Education–EasyPost | + 4h 06' 54" |