La vittoria fu appannaggio dello sloveno Tadej Pogačar, al suo quarto successo alla Grande Boucle, il secondo consecutivo, il quale completò il percorso in 76h00'32" alla media record di 43,389 km/h, davanti al danese Jonas Vingegaard e al tedesco Florian Lipowitz. Sul traguardo degli Champs-Élysées di Parigi 160 ciclisti, su 184 partiti da Lilla, portarono a termine la competizione.
Con questo successo, Pogačar eguaglia il numero di vittorie complessive di Chris Froome con quattro trionfi, e diventa il primo corridore a finire nelle prime tre posizioni della classifica generale per sei edizioni consecutive. Vingegaard, invece, conquista il quinto podio consecutivo alla Grande Boucle; la coppia Pogačar-Vingegaard monopolizza per la quinta volta consecutiva i primi due gradini del podio finale, record nella storia della corsa a tappe francese. Lipowitz, al primo podio in un Grande Giro, alla prima partecipazione al Tour de France, riporta la Germania sul podio della classifica generale finale, diciannove anni dopo il secondo posto di Andreas Klöden nel 2006 e conquista il primo podio al Tour per la Red Bull-Bora-Hansgrohe.
Per la prima volta dall'edizione del 2020, l'intera corsa si è svolta in territorio francese, con la Grand Départ fissata a Lilla. I primi dieci giorni di corsa si concludono con il passaggio sul Massiccio Centrale con l'arrivo in salita di Mont-Dore-Puy de Sancy. Successivamente, la corsa si sposta sui Pirenei con gli arrivi in salita di Hautacam e Luchon-SuperBagnères, a 36 di anni di distanza dall'ultimo passaggio, e con l'inedita cronoscalata di Peyragudes. La terza settimana di corsa si apre con l'arrivo sul mitico Mont Ventoux a cui successivamente fanno seguito gli arrivi in salita di Courchevel (Col de la Loze) e La Plagne. La corsa ritorna a concludersi a Parigi nel cinquantesimo anniversario del primo arrivo della Grande Boucle sugli Champs-Élysées, con tuttavia un circuito finale rivoluzionato che presenta tre ascese alla salita della Basilica del Sacro Cuore, nel quartiere di Montmartre.
La corsa inizia con una tappa pianeggiante intorno a Lille (sede della Grand Départ del Tour de France 2025), offrendo ai velocisti l'opportunità di conquistare la prima maglia gialla. Tre salite di quarta categoria sono presenti sul percorso e hanno decretato il primo vincitore della maglia a pois. A causa dell'elevata velocità del vento, c'era il rischio che il gruppo si dividesse in gruppi.
All'abbassarsi della bandierina che segna l'inizio ufficiale della corsa, cinque corridori si sono immediatamente staccati dal gruppo. La fuga comprendeva Jonas Rutsch (Intermarché-Wanty), Bruno Armirail (Decathlon AG2R La Mondiale Team), Mathis Le Berre (Arkéa-B&B Hotels), Benjamin Thomas (Cofidis) e Mattéo Vercher (TotalEnergies). La Alpecin-Deceuninck si è poi portata in testa per mantenere il vantaggio della fuga a circa due minuti e mezzo. Quando la corsa si è avvicinata allo sprint intermedio a 97,4 km dalla conclusione, il ritmo del gruppo è aumentato, raggiungendo la fuga prima dello sprint intermedio, dove Jonathan Milan ha ottenuto il massimo dei punti. Successivamente, due membri della fuga originale, Thomas e Vercher, hanno attaccato per formare un'altra fuga. Thomas ha ottenuto il massimo dei punti nelle prime due salite di quarta categoria, diventando il primo detentore della maglia a pois. Mentre prendeva il punto sulla seconda salita della giornata, Thomas è caduto trascinando con sé Vercher. Entrambi i corridori sono stati presto raggiunti dal gruppo dopo la caduta.
A 17 km dall'arrivo, la Visma-Lease a Bike ha attaccato su un tratto di strada caratterizzato da forte vento laterale, dividendo con successo il gruppo. Trentasei corridori ne hanno tratto beneficio, tra cui Tadej Pogačar (UAE Team Emirates XRG) e Jonas Vingegaard (Visma-Lease a Bike), mentre Jasper Philipsen (Alpecin-Deceuninck) e Biniam Girmay (Intermarché-Wanty) sono stati i principali velocisti del gruppo di testa. Nonostante gli sforzi del gruppo di inseguitori, il gruppo di testa ha progressivamente aumentato il proprio vantaggio sugli inseguitori fino al traguardo. Negli ultimi 5 km, Ben O'Connor (Team Jayco-AlUla) e Marijn van den Berg (EF Education-EasyPost) sono caduti nel gruppo di testa, ma sono stati accreditati dello stesso tempo per la regola dei cinque chilometri. Nello sprint finale, l'Alpecin-Deceuninck ha preparato perfettamente la volata a Philipsen, che ha vinto facilmente la tappa davanti a Girmay per conquistare la prima Maglia gialla. Il gruppo di inseguitori, che comprendeva Remco Evenepoel (Soudal Quick-Step) e Primož Roglič (Red Bull-Bora-Hansgrohe), ha perso 39 secondi dal gruppo di testa.[3]
La seconda tappa è la più lunga della corsa, con una lunghezza di 209,1 km, e porta i corridori verso ovest, in direzione della Côte d'Opale, fino all'arrivo a Boulogne-sur-Mer. La tappa presenta quattro salite classificate, di cui tre negli ultimi 30 km. Negli ultimi 10 km, i corridori hanno affrontato la Côte de Saint-Étienne-au-Mont (1 km al 10,6%), immediatamente seguita dalla Côte d'Outreau (800 m all'8,8%), che ha raggiunto il culmine a 5,3 km dall'arrivo. L'ultimo tratto di 1,2 km era in salita al 3,8%.
La partenza della tappa è stata ritardata di 15 minuti a causa delle condizioni meteorologiche e dei problemi di traffico, che hanno fatto ritardare alcune squadre al momento dell'iscrizione. Un gruppo di quattro uomini composto da Bruno Armirail (Decathlon AG2R La Mondiale Team), Brent Van Moer (Lotto), Yevgeniy Fedorov (XDS Astana Team) e Andreas Leknessund (Uno-X Mobility) è riuscito a staccarsi dopo pochi chilometri. Alpecin-Deceuninck e Intermarché-Wanty hanno preso il controllo del gruppo, mantenendo il distacco a circa due minuti e mezzo. Nella fuga, a 165 km dal traguardo, Fedorov e Leknessund sono caduti a causa della scivolosità della strada, ma sono riusciti a rientrare rapidamente. Allo sprint intermedio a 54 km dall'arrivo, dopo che la fuga aveva conquistato le prime quattro posizioni, Jonathan Milan (Lidl-Trek) si è piazzato quinto davanti a Tim Merlier (Soudal Quick-Step).
Sulla Côte du Haut Pichot, a circa 30 km dal traguardo, il gruppo si è diviso a causa di una caduta, ma la seconda parte del gruppo è riuscita rapidamente a colmare il divario. Quando i corridori hanno affrontato la Côte de Saint-Étienne-au-Mont, Groupama-FDJ e Visma-Lease a Bike hanno preso il controllo con Lewis Askey e Tiesj Benoot, rispettivamente, prima che Matteo Jorgenson (Visma-Lease a Bike) si portasse avanti nell'ultima parte della salita. Il gruppo di testa si è ridotto a soli sette corridori, tra cui i tre favoriti della vigilia, Pogačar, Vingegaard e Evenepoel, oltre a Mathieu van der Poel (Alpecin-Deceuninck), favorito della tappa. Sulla Côte d'Outreau, altri corridori sono riusciti a rientrare nel gruppo di testa. Dopo la salita, Vingegaard ha sferrato un attacco ma non è riuscito a guadagnare terreno. C'è stato anche un contrattacco di Kévin Vauquelin (Arkéa-B&B Hotels), Alexey Lutsenko (Israel-Premier Tech) e Jorgenson, ma sono stati ripresi da João Almeida (UAE Team Emirates XRG). Prima dell'ultimo chilometro, un attacco di Florian Lipowitz (Red Bull-Bora-Hansgrohe) è stato ripreso nuovamente da Almeida, dando vita a un piccolo sprint di gruppo per la vittoria di tappa: la vittoria è andata ad appannaggio di van der Poel che ha lanciato la volata da lontano ed in testa al gruppetto, ma è riuscito a tenere a bada Pogačar per conquistare la sua seconda tappa del Tour. Vingegaard si è piazzato terzo e ha preso gli ultimi secondi di abbuono disponibili al traguardo. In classifica generale, van der Poel sfila la Maglia gialla dal suo compagno di squadra, Jasper Philipsen, che ha perso 31 secondi al traguardo. Pogačar è salito al secondo posto a quattro secondi, seguito da Vingegaard a sei secondi di distanza.[4]
La terza tappa rimane nell'Alta Francia, dirigendosi a nord da Valenciennes verso Dunkerque su un percorso pianeggiante. L'unica salita della giornata è quella di quarta categoria del Mont Cassel (2,3 km al 3,8%), che si conclude a circa 30 km dal traguardo.
Con una sola salita sul percorso, nessun corridore ha voluto andare in fuga. La tappa è stata per lo più tranquilla fino allo sprint intermedio, dove Jonathan Milan (Lidl-Trek) ha conquistato il massimo dei punti. Tuttavia, Jasper Philipsen (leader della classifica a punti) è caduto pesantemente durante lo sprint dopo che Bryan Coquard (Cofidis) ha perso il controllo della sua bicicletta a causa di un contatto precedente con Laurenz Rex (Intermarché-Wanty). Philipsen è stato costretto ad abbandonare la corsa dopo la tappa; la sua squadra ha annunciato che ha riportato una frattura scomposta della clavicola destra e la frattura di un paio di costole. Quando i corridori si sono avvicinati all'unica salita categorizzata della giornata, Tim Wellens (UAE Team Emirates XRG) si è staccato in solitaria dalla testa del gruppo per conquistare l'unico punto per la maglia a pois, passando in testa alla classifica davanti al suo compagno di squadra, Tadej Pogačar. Gli ultimi 5 km sono stati caratterizzati da diverse cadute, la prima delle quali ha coinvolto corridori di rilievo come Evenepoel e il velocista Jordi Meeus (Red Bull-Bora-Hansgrohe); tutti i corridori coinvolti sono riusciti a terminare la tappa, ma alcuni, come Meeus, hanno riportato escoriazioni.
In vista del traguardo, Danny van Poppel (Red Bull-Bora-Hansgrohe) è stato retrocesso per una mossa pericolosa che ha causato la caduta di diversi corridori come Davide Ballerini (XDS Astana Team) ed Emilien Jeannière (TotalEnergies). Lo sprint finale è stato vinto da Tim Merlier (Soudal Quick-Step) in un arrivo al fotofinish con Milan. Tutti i 181 arrivati sono stati accreditati dello stesso tempo, il che ha comportato solo piccole variazioni nella classifica generale. Milan ha conquistato la maglia verde della classifica a punti.[5]
La quarta tappa parte da Amiens, prima di dirigersi attraverso le pianure della Piccardia verso Rouen, in Normandia. Considerata una tappa collinare, la tappa presentava cinque salite di categoria, tutte negli ultimi 50 chilometri della tappa. La salita di terza categoria di Rampe Saint-Hilaire (800 m al 10,6%) si trovava a soli 5 km dal traguardo di Rouen.
Tre corridori, Lenny Martinez (Bahrain Victorious), Thomas Gachignard (TotalEnergies) e Jonas Abrahamsen (Uno-X Mobility) sono andati subito in fuga prima di essere raggiunti da Kasper Asgreen (EF Education-EasyPost). Il distacco della fuga si è stabilizzato a circa due minuti, con l'Alpecin-Deceuninck che ha controllato il distacco. Quando la corsa si è avvicinata alle salite categorizzate degli ultimi 50 km, il ritmo del gruppo è aumentato. Ci sono state alcune cadute nel gruppo, ma nessun corridore è rimasto gravemente ferito. La fuga si è frammentata durante la serie di brevi salite, fino a quando Martinez è rimasto da solo in testa. Alla fine è stato ripreso a 20,8 km dall'arrivo, quando l'UAE Team Emirates XRG ha iniziato a tenere alto il ritmo in testa al gruppo, entrando nella città di Rouen.
Proprio quando i corridori hanno superato la Côte de la Grand'Mare, la penultima salita della giornata, la Visma-Lease a Bike ha preso il controllo della corsa, guidando il gruppo ai piedi dell'ultima salita, la Rampe Saint-Hilaire. Jhonatan Narváez e João Almeida (UAE Team Emirates XRG) hanno dettato il ritmo prima che Tadej Pogačar lanciasse il suo attacco. Jonas Vingegaard (Visma-Lease a Bike) ha risposto immediatamente all'attacco e, sebbene si sia brevemente staccato, Vingegaard è riuscito a tornare sulla ruota di Pogačar in cima alla salita. Un gruppo composto da Remco Evenepoel (Soudal Quick-Step), Oscar Onley (Team Picnic PostNL), Matteo Jorgenson (Visma-Lease a Bike), Mathieu van der Poel (Alpecin-Deceuninck) e Almeida ha raggiunto la coppia in discesa, mentre Romain Grégoire (Groupama-FDJ) si è ricongiunto pochi minuti dopo. Jorgenson e Evenepoel hanno lanciato dei contrattacchi, ma sono stati chiusi da Almeida, che si è messo in testa all'inizio dell'ultimo chilometro; van der Poel ha lanciato lo sprint per primo, ma a differenza della seconda tappa, Pogačar è riuscito ad aggirarlo e a vincere la tappa, conquistando così la sua centesima vittoria in carriera. van der Poel ha battuto di poco Vingegaard per il secondo posto, mentre Evenepoel e Jorgenson hanno perso qualche secondo sul traguardo. Un gruppo contenente Primož Roglič (Red Bull-Bora-Hansgrohe) ha concluso a circa mezzo minuto. In classifica generale, nonostante lo stesso tempo di Pogačar, van der Poel ha mantenuto la Maglia gialla in virtù di una migliore somma di piazzamenti nelle quattro tappe; Vingegaard ha mantenuto il terzo posto, a otto secondi.[6]
La prima delle due prove a cronometro individuali del Tour 2025 si è svolta a Caen, in Normandia, su un percorso di 33 chilometri su strade larghe e pianeggianti. Il percorso prevedeva tre controlli orari intermedi, situati dopo 8,2 km, 16,4 km e 24,8 km.
Il primo tempo di riferimento è stato quello di Pablo Castrillo (Movistar Team), che ha chiuso con un tempo di 38 minuti esatti, sufficiente per il decimo posto di giornata. Il suo tempo è stato rapidamente superato dal suo compagno di squadra, Iván Romeo, che ha concluso 16 secondi meglio di Castrillo. Luke Plapp (Team Jayco-AlUla) sembrava minacciare il tempo di Romeo quando ha fatto registrare il miglior tempo complessivo ai primi due intermedi, ma alla fine ha fatto segnare un tempo di 37'59", 15 secondi più lento di Romeo. Un corridore che è stato in testa per gran parte della giornata è stato Edoardo Affini (Visma-Lease a Bike), l'attuale campione europeo a cronometro. Anche se non è stato il corridore più veloce nei primi due controlli orari, Affini ha accelerato verso la fine per ottenere un tempo di 37'15". Bruno Armirail (Decathlon AG2R La Mondiale Team) è andato vicino a battere il tempo di Affini, ma alla fine ha ceduto per due secondi.
L'attenzione si è presto spostata sulla battaglia tra i contendenti alla classifica generale. Dopo aver perso quasi un minuto nella quarta tappa, Florian Lipowitz (Red Bull-Bora-Hansgrohe) si è ripreso durante la cronometro, concludendo con un tempo di 37'40", sufficiente per il sesto posto nella tappa. Il suo compagno di squadra, Primož Roglič, ha chiuso appena fuori dalla top ten con un tempo di 38'01". Altri buoni tempi tra i pretendenti alla classifica generale sono stati ottenuti da Kévin Vauquelin (Arkéa-B&B Hotels) e João Almeida (UAE Team Emirates XRG), rispettivamente quinto e ottavo. Ben presto, i tre principali contendenti del Tour, Tadej Pogačar (UAE Team Emirates XRG), Jonas Vingegaard (Visma-Lease a Bike) e Remco Evenepoel (Soudal Quick-Step), sono scesi dalla rampa di partenza. Al primo intermedio, Evenepoel era un secondo più veloce di Pogačar, mentre Vingegaard aveva già perso 20 secondi nello stesso momento. Nel resto del percorso, Evenepoel ha aumentato gradualmente il suo distacco da Pogačar, che a sua volta ha aumentato il suo vantaggio su Vingegaard.
Al traguardo, Evenepoel ha fatto registrare il miglior tempo con 36'42", vincendo la tappa con 16 secondi di vantaggio su Pogačar, che ha concluso la giornata al secondo posto. Nel frattempo, Vingegaard ha fatto registrare un tempo di 38'03", finendo fuori dalla top ten e perdendo più di un minuto sia da Evenepoel che da Pogačar. Il detentore della Maglia gialla, Mathieu van der Poel (Alpecin-Deceuninck), ha fatto segnare un tempo di 38'26", cedendo il simbolo del primato a Pogačar, che ora conduce con 42 secondi di vantaggio su Evenepoel. Vauquelin è terzo in classifica generale, l'unico altro corridore a meno di un minuto da Pogačar. Vingegaard è ora quarto a 1'13" di distacco.[7]
La sesta tappa è rimasta in Normandia, con partenza da Bayeux. Il percorso collinare nella “Svizzera normanna” presentava sei salite categorizzate (cinque di terza categoria e una di quarta categoria) per un totale di 3.550 metri di dislivello. La tappa si è conclusa a Vire Normandie in cima a una salita non classificata lunga 700 metri con una pendenza media del 10%.
All'inizio della tappa, Lidl-Trek e Intermarché-Wanty hanno controllato il gruppo fino allo sprint intermedio dopo 22 km di corsa. Nello sprint, Jonathan Milan (Lidl-Trek) ha ottenuto il massimo dei punti davanti a Mathieu van der Poel (Alpecin-Deceuninck) e Biniam Girmay (Intermarché-Wanty). Subito dopo, Quinn Simmons (Lidl-Trek) e Ben Healy (EF Education-EasyPost) hanno dato vita a una lunga lotta per la fuga che si è protratta per oltre un'ora. Subito dopo aver scollinato la Côte de la Rançonnière a 145 chilometri dall'arrivo, Healy e Simmons sono riusciti ancora una volta a guadagnare terreno insieme a Will Barta (Movistar Team), Harold Tejada (XDS Astana Team) e van der Poel. La lotta per entrare nella fuga è continuata dietro, con Simon Yates (Visma-Lease a Bike), Michael Storer (Tudor Pro Cycling Team) e Eddie Dunbar (Team Jayco-AlUla) che sono riusciti a fare il ponte per arrivare a otto corridori in testa. Alla fine, l'UAE Team Emirates XRG ha preso il controllo del gruppo: il distacco è lievitato ed è diventato chiaro che la vittoria di tappa se la sarebbe giocata la fuga.
A 42,5 km dalla fine, Healy ha sferrato il primo e decisivo attacco e fin da subito ha guadagnato terreno e ha progressivamente aumentato il suo vantaggio sugli inseguitori. A 29 chilometri dall'arrivo, Simmons e Storer sono partiti all'inseguimento di Healy, il cui vantaggio era di poco inferiore al minuto. Nonostante gli sforzi del duo di inseguitori, Healy ha continuato a estendere il suo vantaggio fino al traguardo, vincendo la sua prima tappa del Tour. Sull'ultima rampa verso il traguardo, Simmons ha staccato Storer e ha chiuso al secondo posto a meno di tre minuti da Healy. Nel frattempo, nel gruppo, la Visma-Lease a Bike ha aumentato il ritmo negli ultimi 10 chilometri. Al traguardo, Tadej Pogačar (UAE Team Emirates XRG) ha guidato il gruppo dei corridori della classifica generale a quasi cinque minuti e mezzo. van der Poel ha preceduto il gruppo di 1'29" e si è ripreso la Maglia gialla per un solo secondo su Pogačar. Grazie a questa fuga, Healy è balzato nella top ten della classifica generale a poco più di due minuti. Alcuni pretendenti alla classifica generale, come Primož Roglič (Red Bull-Bora-Hansgrohe) e João Almeida (UAE Team Emirates XRG), hanno perso cinque secondi, mentre Mattias Skjelmose (Lidl-Trek) ha perso addirittura 40 secondi a causa di una foratura avvenuta negli ultimi 10 chilometri.[8]
La settima tappa si è svolta in Bretagna, partendo da Saint-Malo prima di culminare in un circuito finale con due salite di terza categoria del Mûr-de-Bretagne (2 km al 6,9%).
Come il giorno precedente, la corsa è stata caratterizzata da un'altra lunga lotta per entrare nella fuga. Ci sono voluti più di 50 chilometri prima che Geraint Thomas (Ineos Grenadiers), Alex Baudin (EF Education-EasyPost), Ewen Costiou (Arkéa-B&B Hotels), Marco Haller (Tudor Pro Cycling Team) e Iván García Cortina (Movistar Team) riuscissero a formare la fuga. Il loro vantaggio si è attestato a poco meno di due minuti, mentre la UAE Team Emirates XRG e la Alpecin-Deceuninck controllavano il gruppo. Allo sprint intermedio a 57 chilometri dall'arrivo, dopo che il quintetto ha conquistato il massimo dei punti, Jonathan Milan (Lidl-Trek) ha conquistato la posizione più alta possibile nel gruppo per estendere brevemente il suo vantaggio nella classifica a punti. Quando la corsa si è avvicinata alla prima salita del Mûr-de-Bretagne, il vantaggio della fuga è rimasto intorno al minuto.
Sulla prima salita del Mûr-de-Bretagne, Costiou è riuscito a staccare i compagni di fuga, assicurandosi il premio di combattività alla fine della tappa. Nel frattempo, nel gruppo, Visma-Lease a Bike ha aumentato il ritmo con Simon Yates, dividendo il gruppo. Tra coloro che si sono staccati brevemente c'era anche la maglia gialla di Mathieu van der Poel (Alpecin-Deceuninck), che però è riuscito a rientrare nel gruppo. In cima al Mûr-de-Bretagne, Wout van Aert (Visma-Lease a Bike) ha lanciato un attacco, ma è stato chiuso da Tim Wellens (UAE Team Emirates XRG), mentre Marc Soler (UAE Team Emirates XRG) ha presto preso il controllo del gruppo in avvicinamento alla seconda salita del Mûr-de-Bretagne, raggiungendo Costiou. A 6,5 km dall'arrivo, si è verificata una caduta ad alta velocità in fondo al gruppo di testa, che ha coinvolto diversi corridori: tra i coinvolti, il vincitore della tappa del giorno precedente, Ben Healy (EF Education-EasyPost), e Jack Haig (Bahrain Victorious), che ha dovuto abbandonare la corsa. Tuttavia, il corridore più importante coinvolto in termini di classifica generale è stato João Almeida (UAE Team Emirates XRG), uno dei potenziali contendenti al podio: alla fine ha perso più di 10 minuti dopo aver riportato la frattura di una costola e diverse escoriazioni.
Quando il gruppo di testa si è avvicinato alla seconda salita del Mûr-de-Bretagne, Wellens ha iniziato la sua progressione, allungando il gruppo in una lunga fila. Sulla parte ripida della salita, Tadej Pogačar (UAE Team Emirates XRG) ha aumentato il ritmo, con Jonas Vingegaard (Visma-Lease a Bike) e Remco Evenepoel (Soudal Quick-Step) gli unici corridori in grado di seguirlo. All'ultimo chilometro, un gruppo di sei corridori ha raggiunto il terzetto per arrivare a nove corridori. Jhonatan Narvaez, compagno di squadra di Pogačar, è andato immediatamente in testa per tirare la volata: Pogačar è stato il primo a lanciare lo sprint e Vingegaard gli è andato subito dietro; Vingegaard non è stato in grado di riprenderlo e Pogačar ha vinto la sua seconda tappa del Tour di quest'anno. Al traguardo c'era un distacco di due secondi tra il duo di testa e il resto del gruppo, guidato da Oscar Onley (Team Picnic PostNL). Con van der Poel che ha perso quasi un minuto e mezzo, Pogačar ha ripreso la Maglia gialla con 54 secondi di vantaggio su Evenepoel, mentre il deficit di Vingegaard è salito a 1' 17". Con 50 punti in palio per il vincitore di tappa, Pogačar ha conquistato anche la testa della classifica a punti.[9]
L'ottava tappa si è diretta verso est da Saint-Méen-le-Grand in Bretagna a Laval su un percorso di 171,4 km, con una salita di quarta categoria presente su un percorso pianeggiante.
A causa dell'altimetria del percorso, inizialmente nessun corridore voleva andare in fuga. Il gruppo si è avviato verso lo sprint intermedio a 85,9 km dall'arrivo, dove Jonathan Milan (Lidl-Trek) ha conquistato il massimo dei punti davanti a Tim Merlier (Soudal Quick-Step). Pochi minuti dopo, due corridori della TotalEnergies, Mattéo Vercher e Mathieu Burgaudeau, hanno attaccato dal gruppo per formare la fuga del giorno. Ai due non è stato concesso un grande distacco e il loro vantaggio è oscillato a poco meno di un minuto. Negli ultimi 20 chilometri, entrambi i corridori, che hanno ricevuto il premio per la combattività, sono stati ripresi dal gruppo. A 12,5 km dal traguardo, Merlier ha subito un problema meccanico. È riuscito a rientrare nel gruppo, ma non è stato in grado di tornare in posizione di sprint per la vittoria. Nello sprint finale, Mathieu van der Poel (Alpecin-Deceuninck) ha tirato perfettamente la volata al suo velocista, Kaden Groves, ma Milan lo ha rapidamente aggirato per vincere la sua prima tappa del Tour in carriera davanti a Wout Van Aert (Team Visma-Lease a Bike), interrompendo un digiuno di sei anni (l'ultima vittoria italiana risaliva alla ventesima tappa del Tour de France 2019, vinta da Vincenzo Nibali). L'italiano della Lidl-Trek ha riconquistato la testa della classifica a punti dopo aver ottenuto un totale di 70 punti, poi diventati 60 dovuta ad una penalizzazione per un'ostruzione nella volata. Non ci sono stati cambiamenti nella classifica generale.[10]
La nona tappa del Tour si è diretta verso sud, con una frazione pianeggiante da Chinon a Châteauroux, nella regione del Centre-Val de Loire, che si prevedeva sarebbe stata contesa dai velocisti. Non c'erano salite categorizzate sul percorso, ma c'era il rischio di vento contrario per tutta la giornata.
Appena iniziata la tappa, due corridori dell'Alpecin-Deceuninck, Mathieu van der Poel e Jonas Rickaert, sono andati all'attacco. Il loro distacco è salito fino a cinque minuti e mezzo, mentre la Lidl-Trek ha controllato la maggior parte del gruppo. Allo sprint intermedio, dopo 24,2 km di corsa, van der Poel ha conquistato il massimo dei punti, mentre Jonathan Milan (Lidl-Trek) ha guidato il gruppo per estendere il suo vantaggio nella classifica a punti. Nel corso della tappa, João Almeida (UAE Team Emirates XRG) ha abbandonato la corsa a causa delle ferite riportate nella caduta della settima tappa. Sulla strada per l'arrivo, ci sono stati diversi tentativi di formare dei frazionamenti nel gruppo, ma nessuno dei principali contendenti alla classifica generale è rimasto attardato. A 10 km dall'arrivo, il duo di testa aveva ancora un minuto di vantaggio sul gruppo. Rickaert ha dato il massimo fino a quando van der Poel è andato in solitaria a 6 km dall'arrivo; Rickaert è stato successivamente premiato con il premio di più combattivo della giornata, mentre van der Poel è stato ripreso all'ultimo chilometro. In volata, Tim Merlier (Soudal Quick-Step) ha tenuto testa a Milan per aggiudicarsi la sua seconda tappa del Tour di quest'anno. Arnaud De Lie (Lotto) si è classificato terzo, ottenendo il suo miglior risultato in gara fino a quel momento. La classifica generale è rimasta invariata. Il vento in coda alla tappa e gli sforzi per inseguire la fuga dell'Alpecin-Deceuninck hanno fatto sì che la tappa sia stata la seconda più veloce nella storia del Tour a 50,013 km/h, e solo la seconda tappa a superare la barriera dei 50 km/h.[11]
La decima tappa da Ennezat a Mont-Dore, che si è svolta nel giorno della Bastiglia, ha affrontato otto salite di categoria (sette di seconda categoria e una di terza categoria) nelle montagne del Massiccio Centrale. La tappa è stata la prima tappa di montagna del Tour di quest'anno, con un percorso ricco di salite e discese, senza quasi nessun tratto di pianura. La tappa si è conclusa con la salita del Puy de Sancy, una salita di 3,3 km con una pendenza media dell'8%.
Numerosi corridori hanno attaccato non appena è calata la bandierina. Alla fine, un gruppo di 29 corridori è andato via sulla prima salita della giornata. Il corridore meglio piazzato in classifica generale nella fuga era Ben Healy (EF Education-EasyPost), che aveva 3' 51" di ritardo da Tadej Pogačar (UAE Team Emirates XRG) all'inizio della giornata. Inizialmente, la UAE ha mantenuto la fuga vicina prima di lasciare che il distacco arrivasse a sei minuti. In cima alle salite categorizzate, Lenny Martinez (Bahrain Victorious) ha puntato a conquistare la maglia a pois, accumulando 27 punti nel corso della giornata per prendere il comando della classifica degli scalatori. Con tre corridori in fuga, la EF ha svolto la maggior parte dell'andatura, mettendo Healy in Maglia gialla virtuale. Nel corso della giornata, dalla fuga sono partiti diversi attacchi, fino a quando sono rimasti solo sei corridori in testa alle ultime due salite: Healy, Quinn Simmons (Lidl-Trek), Ben O'Connor (Team Jayco AlUla), Simon Yates (Team Visma-Lease a Bike), Michael Storer (Tudor Pro Cycling Team) e Thymen Arensman (Ineos Grenadiers).
Sul Col de la Croix Saint-Robert, Healy ha guidato da solo il gruppo di testa, cercando di mantenere la Maglia gialla virtuale. Sull'ultima salita della giornata Yates ha attaccato fin da subito, seguito solo da O'Connor. Dopo che Arensman ha raggiunto i due, Yates ha effettuato un'altra accelerazione per partire da solo in testa. Arensman ha tenuto Yates a meno di cinque secondi, ma non è riuscito a raggiungerlo e Yates ha vinto la tappa. Healy ha superato O'Connor per arrivare terzo a 31 secondi. Nel gruppo dei favoriti per la classifica generale, il Team Visma ha attaccato più volte negli ultimi 30 chilometri con gli americani Matteo Jorgenson e Sepp Kuss. Lo stesso Pogačar ha risposto agli attacchi di Jorgenson, mentre Jonas Vingegaard (Team Visma-Lease a Bike) è rimasto alla sua ruota. Sull'ultima salita, Remco Evenepoel (Soudal Quick-Step) ha accelerato, ma non ha avuto molto spazio. Poco dopo, Pogačar ha lanciato un attacco che è stato seguito solo da Vingegaard. Entrambi i corridori hanno concluso la tappa a 4' 51" da Yates, con un piccolo vantaggio sul resto del gruppo della classifica generale, fortemente ridotto, composto da Evenepoel, Jorgenson, Florian Lipowitz (Red Bull-Bora-Hansgrohe), Primož Roglič (Red Bull-Bora-Hansgrohe), Oscar Onley (Team Picnic PostNL) e Tobias Halland Johannessen (Uno-X Mobility).
In classifica generale, Healy ha conquistato la maglia gialla con un vantaggio di 29 secondi su Pogačar. Kévin Vauquelin (Arkéa-B&B Hotels) è sceso al sesto posto dopo aver perso 46 secondi da Pogačar e Vingegaard. Johannessen è entrato nella top ten dopo aver concluso con il gruppetto della classifica generale. I velocisti hanno concluso in un gruppo con oltre 30 minuti di ritardo dai leader, ma sono rimasti entro il tempo limite.[12]
Dopo il primo giorno di riposo, l'undicesima tappa si è svolta intorno a Tolosa, nella regione dell'Occitania, con cinque salite categorizzate (una di terza categoria e quattro di quarta categoria) sul percorso. L'ultima salita, la Côte de Pech David (800 m al 12,4%), è arrivata a soli 8,8 km dall'arrivo.
All'inizio della tappa, Jonas Abrahamsen (Uno-X Mobility), Mauro Schmid (Team Jayco-AlUla) e Davide Ballerini (XDS Astana Team) sono riusciti a guadagnare terreno sul gruppo. Se da un lato sono riusciti ad aumentare il loro vantaggio, dall'altro la lotta per raggiungere la fuga è proseguita con continui attacchi alle loro spalle. A causa del ritmo sostenuto, il gruppo si è spaccato più volte: la Maglia giallaBen Healy (EF Education-EasyPost) e Tadej Pogačar (UAE Team Emirates XRG) sono rimasti attardati a un certo punto, ma alla fine il gruppo si è ricompattato. A 82 km dal traguardo, Mathieu Burgaudeau (TotalEnergies) e Fred Wright (Bahrain Victorious) sono riusciti a raggiungere il trio di testa. Il gruppo ha leggermente rallentato, aumentando il vantaggio della fuga a quasi due minuti, prima che gli attacchi ricominciassero. Alla fine, un primo gruppo di inseguitori composto da Mathieu van der Poel (Alpecin-Deceuninck), Wout Van Aert (Team Visma-Lease a Bike), Arnaud De Lie (Lotto), Quinn Simmons (Lidl-Trek) e Axel Laurance (Ineos Grenadiers) è riuscito a inseguire la fuga, mentre il gruppo ha finalmente mollato la presa. All'approssimarsi delle ultime due salite, gli inseguitori sono arrivati a meno di 20 secondi dal gruppo di testa, ma non sono riusciti a raggiungerli. Sulla Côte de Vielle-Toulouse, a circa 14 chilometri dalla fine, Abrahamsen e Schmid hanno accelerato in testa alla corsa, mentre Simmons ha attaccato da solo, riuscendo a formare un gruppo di inseguitori con Wright e Burgaudeau. Il duo di testa è entrato nell'ultima salita con un vantaggio di circa 20 secondi sul primo gruppo di inseguitori, mentre il gruppo di van der Poel e van Aert era a 20 secondi. Sulla Côte de Pech David, van der Poel ha sferrato un attacco, superando il primo gruppo di inseguitori e lanciandosi all'inseguimento di Abrahamsen e Schmid, che erano ancora in testa con circa 20 secondi di vantaggio sull'olandese. Van der Poel ha chiuso a meno di 10 secondi, ma non è riuscito a raggiungere il duo di testa, che ha sprintato per la vittoria. Schmid ha condotto lo sprint prima che Abrahamsen lo superasse per vincere la sua prima tappa di un Grande Giro. All'approssimarsi delle ultime due salite, gli inseguitori sono arrivati a meno di 20 secondi dal gruppo di testa, ma non sono riusciti a raggiungerli. Sulla Côte de Vielle-Toulouse, a circa 14 chilometri dalla fine, Abrahamsen e Schmid hanno accelerato in testa alla corsa, mentre Simmons ha attaccato da solo, riuscendo a formare un gruppo di inseguitori con Wright e Burgaudeau. Il duo di testa è entrato nell'ultima salita con un vantaggio di circa 20 secondi sul primo gruppo di inseguitori, mentre il gruppo di van der Poel e van Aert era a 20 secondi. Sulla Côte de Pech David, van der Poel ha sferrato un attacco, superando il primo gruppo di inseguitori e lanciandosi all'inseguimento di Abrahamsen e Schmid, che erano ancora in testa con circa 20 secondi di vantaggio sull'olandese. van der Poel ha chiuso a meno di 10 secondi, ma non è riuscito a raggiungere il duo di testa, che ha sprintato per la vittoria. Schmid ha lanciato la volata prima che Abrahamsen lo superasse per vincere la sua prima tappa e la prima tappa della squadra in un Grande Giro. Nel gruppo, ci sono stati attacchi da parte di Kévin Vauquelin (Arkéa-B&B Hotels) e Vingegaard sull'ultima salita, ma le cose sono tornate a posto. Dopo la salita, Pogačar è caduto dopo un contatto accidentale con Tobias Halland Johannessen (Uno-X Mobility), senza però riportare ferite gravi. Il gruppo della classifica generale ha finito per aspettarlo, il che significa che la classifica generale è rimasta invariata prima che la corsa si dirigesse verso i Pirenei.[13]
La dodicesima tappa è stata la prima sulle montagne dei Pirenei, con i corridori che hanno affrontato quattro salite categorizzate, tra cui il Col du Soulor di prima categoria (11,8 km al 7,3% di pendenza media) e l'arrivo in cima a Hautacam, salita hors catégorie (13,5 km al 7,8% di pendenza media).
Prima della tappa, è stato osservato un minuto di silenzio in memoria del corridore under-23 Samuele Privitera, morto dopo una caduta nella prima tappa del Giro della Valle d'Aosta il giorno precedente. Pochi minuti dopo l'abbassammento della bandiera, un folto gruppo di 52 corridori è scattato; il corridore meglio piazzato in classifica generale nella fuga era Carlos Rodríguez (Ineos Grenadiers), che aveva 5' 44" di ritardo su Ben Healy (EF Education-EasyPost) all'inizio della giornata. Grazie alla presenza di Rodríguez nella fuga, Uno-X Mobility, UAE Team Emirates XRG ed EF Education-EasyPost hanno mantenuto il distacco dalla fuga stabile a poco meno di due minuti. La corsa si è avvicinata al Col du Soulor dopo 122 km di gara: sulla salita, la fuga si è frammentata, con Michael Woods (Israel-Premier Tech) in testa a pochi secondi da Mattias Skjelmose (Lidl-Trek) e Bruno Armirail (Decathlon AG2R La Mondiale Team). Dietro, nel gruppo, la Visma-Lease a Bike ha iniziato a imporre un ritmo elevato, facendo crollare diversi corridori tra cui Remco Evenepoel (Soudal Quick-Step) e la Maglia gialla Healy. A metà salita, però, hanno dovuto allentare il ritmo dopo che Matteo Jorgenson ha iniziato a faticare, permettendo all'americano di rientrare nel gruppo della classifica generale. In cima, il vantaggio della fuga era ancora di circa due minuti.
Nella discesa del Soulor, Armirail ha staccato i suoi compagni di fuga, aumentando gradualmente il suo vantaggio sul gruppo degli inseguitori. Quando la corsa ha raggiunto la successiva salita del Col des Bordères, Jorgenson ha iniziato a faticare ancora una volta, ma è riuscito a riprendersi. Nella discesa del Col des Bordères, Evenepoel è riuscito a rientrare nel gruppo, mentre la UAE Team Emirates XRG ha impresso il ritmo con Tim Wellens, che faceva parte della fuga originale di 52 uomini. Hanno chiuso il primo gruppo di inseguitori mentre Armirail ha raggiunto i piedi dell'Hautacam con un vantaggio di poco più di un minuto e mezzo; ai piedi dell'Hautacam, Wellens ha aumentato il ritmo, isolando Jonas Vingegaard (Visma-Lease a Bike), e facendo nuovamente staccare Evenepoel. Successivamente, Jhonatan Narváez (UAE Team Emirates XRG) ha impresso un ritmo durissimo per favorire l'attacco del suo compagno di squadra Tadej Pogačar, con Vingegaard unico corridore in grado di seguirlo. Vingegaard è stato però costretto abbastanza presto ad alzare bandiera bianca, a causa del ritmo troppo elevato: Pogačar ha sferrato il suo attacco a 12 chilometri dal traguardo. Lo sloveno ha progressivamente aumentato il suo vantaggio sul danese fino alla vetta. Dietro i due, Florian Lipowitz (Red Bull-Bora-Hansgrohe) è emerso come il più forte degli altri, staccando il resto del gruppo dei corridori della classifica generale. Al traguardo, Pogačar ha conquistato la sua terza tappa del Tour di quest'anno, staccando Vingegaard di due minuti e dieci secondi. Lipowitz si è fermato a soli 13 secondi da Vingegaard, mentre il resto dei principali contendenti alla classifica generale ha concluso a scaglioni, con tutti i corridori ad oltre tre minuti di ritardo da Pogačar. Healy, in Maglia gialla, ha perso 13 minuti, scendendo all'11° posto in classifica generale. In classifica generale, Pogačar ha riconquistato il simbolo del primato, aumentando il suo vantaggio a più di tre minuti e mezzo su Vingegaard. Evenepoel ha mantenuto la sua posizione sul podio a quasi cinque minuti, dopo aver concluso la tappa a tre minuti e mezzo da Pogačar. Lipowitz e Kévin Vauquelin (Arkéa-B&B Hotels) hanno completato la top five, con entrambi i corridori a più di cinque minuti e mezzo di distanza e separati solo da sei secondi.[14]
La seconda cronometro individuale del Tour 2025 si è svolta sui Pirenei, su un percorso di 10,9 km che saliva all'altiporto di Peyragudes, una salita di prima categoria di 8 km con una pendenza media del 7,9%. Sul percorso erano presenti due controlli orari intermedi, situati a 4 km e a 7,6 km. La tappa è stata la prima cronoscalata dal Tour de France 2020. Il primo tempo di riferimento è stato quello di Luke Plapp (Team Jayco AlUla), che ha fatto segnare un tempo di 24'58". È rimasto a lungo in testa alla classifica e il suo tempo è stato sufficiente per ottenere il quinto posto alla fine della giornata. Lenny Martinez (Bahrain Victorious) è andato vicino a battere il tempo di Plapp, ma è stato battuto di 23 secondi. Un altro corridore che ha insidiato il tempo di Plapp è stato Adam Yates (UAE Team Emirates XRG), a soli 17 secondi dall'australiano. Nessun altro corridore è stato in grado di sfidare il tempo di Plapp fino a quando i principali contendenti alla classifica generale non hanno imboccato la rampa di partenza. Matteo Jorgenson (Team Visma-Lease a Bike) è stato in grado di precedere Plapp al primo rilevamento cronometrico, ma l'americano ha perso tempo sulla salita, finendo a quattro secondi dall'australiano. Solo quando Primož Roglič (Red Bull-Bora-Hansgrohe), settimo in classifica generale, è sceso dalla rampa di partenza, è arrivato davanti a Plapp: ha aumentato gradualmente il suo vantaggio lungo tutto il percorso, prima di ottenere un tempo di 24'20", con 38 secondi di vantaggio su Plapp. Il suo tempo è stato sufficiente per il terzo posto nella tappa. Anche il suo compagno di squadra della Red Bull-Bora-Hansgrohe, Florian Lipowitz, ha fatto registrare un buon tempo, arrivando a 36 secondi dallo sloveno. Ben presto l'attenzione si è spostata sui primi tre della classifica generale, a cominciare da Remco Evenepoel (Soudal Quick-Step). Dopo aver fatto registrare il secondo miglior tempo al primo controllo cronometrico, Evenepoel ha faticato per tutto il resto del percorso. È stato addirittura superato in prossimità dell'arrivo da Jonas Vingegaard (Team Visma-Lease a Bike), partito due minuti dopo il corridore belga, che è passato brevemente in testa alla classifica con un tempo di 23'36", 44 secondi davanti a Roglič. Tuttavia, la migliore prestazione è stata quella di Tadej Pogačar (UAE Team Emirates XRG) in Maglia gialla. Ha fatto registrare il miglior tempo in entrambi i controlli orari prima di concludere con un tempo di 23 minuti esatti, vincendo la tappa con 36 secondi di vantaggio su Vingegaard. Si tratta della sua quarta vittoria di tappa in questa corsa e della 21ª in assoluto al Tour. In classifica generale, Pogačar ha aumentato il suo vantaggio a oltre quattro minuti su Vingegaard. Nonostante le sue difficoltà, Evenepoel ha mantenuto il suo terzo posto a oltre sette minuti, ma ora con solo sei secondi di vantaggio su Lipowitz. Alla fine della giornata, i corridori dal terzo al settimo posto in classifica generale erano separati da soli 1'26".[15]
La quattordicesima tappa è l'ultima del trittico pirenaico con un tappone di 182,6 km da Pau a Luchon-Superbagnères. La tappa presentava quattro salite categorizzate: l'hors catégorieCol du Tourmalet (19 km al 7,9% di pendenza media), il secondo categoria Col d'Aspin (5 km al 7,6%) e il primo categoria Col de Peyresourde (7,1 km al 7,8%). La salita finale è stata un arrivo in vetta alla stazione sciistica di Superbagnères - una salita hors catégorie lunga 12,4 km con una pendenza media del 7,3%, che termina a 1.804 m. La salita di Superbagnères è stata utilizzata per l'ultima volta al Tour de France 1989. Molteplici attacchi hanno caratterizzato l'inizio della tappa, senza che si formasse una fuga fino allo sprint intermedio a 111 chilometri dall'arrivo, dove Jonathan Milan (Lidl-Trek) ha ottenuto il massimo dei punti per aumentare il suo vantaggio nella classifica a punti. Subito dopo, i corridori hanno scalato il Col du Tourmalet, dove ha iniziato a formarsi una fuga di 17 uomini. Tra i corridori in fuga c'era Tobias Halland Johannessen (Uno-X Mobility), ottavo in classifica generale all'inizio della giornata. Quando il gruppo ha imposto un ritmo costante, Remco Evenepoel (Soudal Quick-Step), il terzo corridore in classifica generale, è stato rapidamente staccato. Un suo compagno di squadra, Pascal Eenkhoorn, ha cercato di farlo rientrare, ma il belga ha continuato a faticare prima di abbandonare la corsa. Davanti, Lenny Martinez (Bahrain Victorious) ha attaccato alla ricerca di punti per la classifica della montagna, accumulando un vantaggio di due minuti sul resto della fuga. Ha conquistato il massimo dei punti in cima al Tourmalet - conquistando anche il Souvenir Jacques Goddet - e all'Aspin, riprendendo il comando della classifica degli scalatori. Nella discesa dell'Aspin, Martinez ha atteso Sepp Kuss (Team Visma-Lease a Bike) e Valentin Paret-Peintre (Soudal Quick-Step), che si erano sganciati dal resto della fuga nella discesa del Tourmalet. A questo punto, il gruppo guidato dall'UAE Team Emirates XRG aveva un ritardo di circa quattro minuti. Ai piedi del Peyresourde, il trio di testa è stato raggiunto da otto corridori del gruppo di inseguitori, mentre il gruppo si avvicinava a due minuti e mezzo dalla fuga. A 37 chilometri dal traguardo, Thymen Arensman (Ineos Grenadiers) ha attaccato dalla fuga. Ha rapidamente accumulato un minuto di vantaggio sul gruppo di inseguitori e ha esteso il suo vantaggio sul gruppo a più di tre minuti e mezzo in cima al Peyresourde. Quando i corridori hanno raggiunto le pendici di Superbagnères, il gruppo si è avvicinato agli inseguitori, mentre Arensman ha mantenuto un vantaggio di circa tre minuti. A metà della salita, Felix Gall (Decathlon AG2R La Mondiale Team) ha attaccato il gruppo dei favoriti, accumulando un vantaggio di circa 30 secondi. A 4 km dalla vetta, Jonas Vingegaard (Team Visma-Lease a Bike) ha accelerato con Tadej Pogačar (UAE Team Emirates XRG) e Florian Lipowitz (Red Bull-Bora-Hansgrohe) che si sono messi alla sua ruota. Pogačar ha lanciato un contrattacco con Vingegaard alla ruota, facendo cedere Lipowitz e superando Gall. I primi due della classifica generale si sono avvicinati ad Arensman, ma l'olandese li ha tenuti a bada vincendo la sua prima tappa del Tour. Un minuto dopo, Pogačar ha superato Vingegaard guadagnando altri quattro secondi sulla strada e due secondi di abbuono. Gall e Lipowitz hanno chiuso rispettivamente a 11 e 17 secondi da Pogačar, mentre Oscar Onley (Team Picnic PostNL) è stato il migliore degli altri, perdendo un minuto dallo sloveno. In classifica generale, Pogačar ha portato il suo vantaggio a 4'13" su Vingegaard. Con l'abbandono di Evenepoel, Lipowitz ha conquistato il terzo posto e la maglia bianca, con un vantaggio di 1'25" su Onley, che è salito al quarto posto.[16]
Lasciati i Pirenei, la 15ª tappa ha portato i corridori verso est, da Muret a Carcassonne, su un percorso mosso di 169,3 km con tre salite categorizzate. Si prevedeva che la tappa sarebbe stata contesa dalla fuga.
Mentre i corridori cercavano di andare in fuga, c'è stata una caduta che ha diviso il gruppo. Tra i coinvolti c'erano Jonas Vingegaard (Team Visma-Lease a Bike) e Florian Lipowitz (Red Bull-Bora-Hansgrohe), il secondo e il terzo classificato in classifica generale. Tutti i pretendenti alla classifica generale sono stati coinvolti, ad eccezione di Tadej Pogačar (UAE Team Emirates XRG) che ha cercato di rallentare il gruppo di testa per aspettare gli altri, ma gli attacchi per formare la fuga sono continuati. Alla fine il gruppo si è riformato, mentre un gruppo di 15 corridori ha allungato sulla strada, mantenendo un vantaggio di meno di un minuto. Allo sprint intermedio, a 109 chilometri dal traguardo, Mathieu van der Poel (Alpecin-Deceuninck) ha ottenuto il massimo dei punti, portandosi a 41 punti dalla testa della classifica a punti. Quando i corridori hanno raggiunto la prima salita della giornata, diversi corridori hanno attaccato dal gruppo per unirsi alla fuga. In cima alle prime due salite, un gruppo di otto uomini composto da Tim Wellens (UAE Team Emirates XRG), Carlos Rodríguez (Ineos Grenadiers), Victor Campenaerts (Visma-Lease a Bike), Neilson Powless (EF Education-EasyPost), Matej Mohorič (Bahrain Victorious), Quinn Simmons (Lidl-Trek), Michael Storer (Tudor Pro Cycling Team) e Alexey Lutsenko (Israel-Premier Tech) hanno guidato un gruppo di 26 corridori con poco meno di un minuto, mentre il gruppo si è accontentato di lasciare che la fuga lottasse per la vittoria.
In prossimità del Pas du Sant (2,9 km al 10,2% di pendenza media), l'ultima salita della tappa, Andreas Leknessund (Uno-X Mobility) è riuscito a raggiungere il gruppo di testa. Alle pendici della salita, Storer ha attaccato, seguito immediatamente da Simmons. Dietro di loro, Campanearts e Wellens hanno tenuto un ritmo costante che ha permesso loro di raggiungere i due davanti. Dopo un attacco fallito di Storer in cima alla salita, Warren Barguil (Team Picnic PostNL), Aleksandr Vlasov (Red Bull-Bora-Hansgrohe), Rodríguez e Lutsenko si sono uniti al quartetto di testa. A 43,5 km dal traguardo, Wellens ha fatto la sua mossa: Barguil ha provato a seguire il belga, ma non ci è riuscito e Wellens ha aumentato gradualmente il suo vantaggio sugli inseguitori. Il gruppo di inseguitori è stato presto raggiunto dai resti della fuga in vista del traguardo, dove Wellens ha festeggiato la sua prima vittoria di tappa al Tour. Con questa vittoria, ha completato la trilogia di vittorie di tappa in tutti e tre i Grandi Giri. In prossimità dell'arrivo, Campanearts è riuscito a staccarsi dal gruppo degli inseguitori per conquistare il secondo posto, mentre Julian Alaphilippe (Tudor Pro Cycling Team) ha guidato il resto della fuga sul traguardo dopo aver pensato erroneamente di aver vinto la tappa. Il gruppo ha concluso con un distacco di oltre sei minuti. L'unico cambiamento in classifica generale è stato il sorpasso di Rodríguez su Ben Healy (EF Education-EasyPost) per il nono posto, dopo aver guadagnato quasi cinque minuti con la fuga.[17]
Dopo il secondo giorno di riposo, la sedicesima tappa è partita da Montpellier, prima di dirigersi a est verso il Mont Ventoux - una salita di 15,7 km con una pendenza media dell'8,8%, con l'arrivo a 1.910 m. L'ultima volta che il Tour ha avuto un arrivo in vetta al Monte Ventoso è stato nel 2013.
Dopo 10 chilometri, Xandro Meurisse (Alpecin-Deceuninck), Marc Hirschi e Marco Haller (Tudor Pro Cycling Team) sono riusciti a sganciarsi dal gruppo. Diversi corridori hanno provato a inseguirli, ma dopo pochi chilometri il vantaggio del trio è salito a quasi due minuti. Alla fine gli attacchi del gruppo sono ripresi, portando il gruppo di testa a poca distanza. Poco dopo, un gruppo di 36 corridori si è staccato dal gruppo, tra cui Ben Healy (EF Education-EasyPost), decimo in classifica generale all'inizio della giornata. La fuga ha continuato ad aumentare il vantaggio sul gruppo fino a quando un gruppo di sette corridori composto da Thymen Arensman (Ineos Grenadiers), Fred Wright (Bahrain Victorious), Julian Alaphilippe e Matteo Trentin (Tudor Pro Cycling Team), Enric Mas (Movistar Team), Jonas Abrahamsen (Uno-X Mobility) e Simone Velasco (XDS Astana Team) si è sganciato dalla testa della corsa a 65 chilometri dall'arrivo. Quando i corridori si sono avvicinati ai piedi del Mont Ventoux, il gruppo di testa aveva un vantaggio di quasi due minuti sul resto della fuga, mentre il gruppo era a sei minuti e mezzo.
Sulla salita, il gruppo di testa si è spezzato, con Mas che si è mosso in solitaria a 14 chilometri dall'arrivo. I suoi inseguitori più vicini, Arensman e Alaphilippe, sono stati gradualmente raggiunti dal resto della fuga, che a questo punto si era anch'essa frammentata. Valentin Paret-Peintre (Soudal Quick-Step), Santiago Buitrago (Bahrain Victorious) e Healy sono emersi come i corridori più forti del gruppo di inseguitori, con il trio che ha iniziato ad avvicinarsi a Mas. Dopo aver staccato Buitrago, Healy e Paret-Peintre sono riusciti a raggiungere Mas a 3,6 km dall'arrivo. Buitrago è tornato presto nel gruppo di testa mentre davanti si controllavano i leader. I corridori si sono attaccati a vicenda negli ultimi chilometri, ma l'unico a staccarsi è stato Mas, lasciando un trio di corridori in testa. All'ultimo chilometro, Ilan Van Wilder, compagno di squadra di Paret-Peintre, è riuscito a raggiungere il gruppo di testa. Ha immediatamente lanciato lo sprint per il suo compagno, con Healy che ha attaccato per primo. Paret-Peintre ha aggirato Healy all'uscita dell'ultima curva ed è diventato il primo francese a vincere una tappa del Tour di quest'anno.
Nel gruppo della classifica generale, la Visma-Lease a Bike ha imposto un ritmo sostenuto fin dai piedi della salita. A circa 9 km dall'arrivo, Jonas Vingegaard (Visma-Lease a Bike) ha sferrato il suo primo attacco con Tadej Pogačar (UAE Team Emirates XRG) che gli è andato subito a ruota. In momenti diversi, il duo ha raggiunto i compagni di squadra di Vingegaard andati in fuga all'inizio della tappa, Tiesj Benoot e Victor Campenaerts, che hanno imposto un ritmo sostenuto prima che Vingegaard lanciasse altri attacchi. Tuttavia, Pogačar è stato in grado di rispondere ogni volta. Lo stesso sloveno ha attaccato negli ultimi 2 chilometri, ma Vingegaard è riuscito a raggiungerlo. Al traguardo, Pogačar è riuscito a distanziare Vingegaard di due secondi, ma il duo non è riuscito a raggiungere il gruppo di testa per meno di 50 secondi. I compagni di squadra della Red Bull-Bora-Hansgrohe, Primož Roglič e Florian Lipowitz, hanno pagato un distacco di oltre un minuto da Pogačar e Vingegaard. In classifica generale, Pogačar ha portato il suo vantaggio a 4' 15" su Vingegaard, mentre Lipowitz ha consolidato il suo terzo posto dopo aver guadagnato 36 secondi su Oscar Onley (Team Picnic PostNL), che si trova ancora in quarta posizione. Roglič ha conquistato la quinta posizione dopo che Kévin Vauquelin (Arkéa-B&B Hotels) ha perso quasi due minuti dallo sloveno.
Dopo il traguardo, Vingegaard è caduto dopo che un fotografo gli è passato davanti, ma entrambi non hanno riportato ferite gravi. Pochi minuti dopo, Tobias Halland Johannessen (Uno-X Mobility), ottavo in classifica generale, ha avuto bisogno di ossigeno ed è stato portato in ospedale dopo aver accusato dolori addominali sull'ultima salita. Alla fine si è sentito meglio.[18]
Dirigendosi verso nord, in direzione delle Alpi, la diciassettesima tappa ha portato i corridori da Bollène a Valence con due salite di quarta categoria lungo il percorso di 160,4 km.
Subito dopo la partenza, quattro corridori hanno dato vita alla fuga di giornata. Il gruppo era composto da Jonas Abrahamsen (Uno-X Mobility), Quentin Pacher (Groupama-FDJ), Mathieu Burgaudeau (TotalEnergies) e Vincenzo Albanese (EF Education-EasyPost). Axel Laurance (Ineos Grenadiers) ha cercato di colmare il divario, ma non è mai riuscito ad avvicinarsi ed è stato infine raggiunto dal gruppo. Il vantaggio massimo della fuga è stato di quasi tre minuti, con la Soudal Quick-Step e la Lidl-Trek che hanno controllato il ritmo per i loro velocisti, rispettivamente Tim Merlier e Jonathan Milan. Quando i corridori si sono avvicinati alla prima salita della giornata, il Col du Pertuis, diversi corridori hanno cercato di sganciarsi dal gruppo: l'aumento di ritmo ha causato il distacco di Milan dal gruppo. A un certo punto era staccato di circa un minuto, ma la Lidl-Trek è riuscita a riportarlo nel gruppo. Mentre la gara si avvicinava alla salita finale della giornata, il vantaggio della fuga era di circa un minuto.
Sulle pendici del Col de Tartaiguille, Wout Van Aert (Visma-Lease a Bike) ha attaccato dal gruppo a 45 chilometri dall'arrivo, cercando di raggiungere la fuga. Tuttavia, è rimasto bloccato tra la fuga e il gruppo ed è stato infine ripreso dal gruppo. Mentre si avvicinavano al traguardo, la pioggia ha iniziato a bagnare i corridori sulla strada. A 11 chilometri dall'arrivo, Abrahamsen ha lasciato i suoi compagni di fuga. Alla fine è stato raggiunto a 4 chilometri dal traguardo, dando il via a uno sprint di gruppo. Poco prima della flamme rouge, una caduta ha coinvolto diversi corridori, facendo sì che un piccolo gruppo, tra cui Milan, si contendesse la vittoria. Tra i corridori coinvolti c'era anche Merlier, uno dei favoriti della tappa. Nello sprint finale, Milan ha battuto Jordi Meeus (Red Bull-Bora-Hansgrohe) conquistando la sua seconda vittoria di tappa. Finendo quinto allo sprint intermedio e ottenendo il massimo di 50 punti all'arrivo, Milan ha aumentato il suo vantaggio a 72 punti nella classifica a punti. La classifica generale è rimasta invariata prima che la gara si dirigesse verso le Alpi.[19]
La diciottesima tappa era una delle due tappe alpine presenti in questa edizione, con tre salite hors catégorie su un percorso di 171,5 chilometri che partiva da Vif e arrivava a Courchevel: il Col du Glandon (21,7 km al 5,1% di pendenza media), il Col de la Madeleine (19,2 km al 7,9%) e l'arrivo in cima al Col de la Loze, una salita di 26,4 km con una pendenza media del 6,5% e un'altitudine di 2304 m, punto più elevato di questa Grande Boucle. La tappa presentava un dislivello di 5450 m: era considerata la tappa regina di questo Tour.
Prima dell'inizio della tappa, la Ineos Grenadiers ha annunciato che Carlos Rodríguez, che all'inizio della giornata era decimo nella classifica generale, aveva abbandonato la gara dopo essersi fratturato il bacino in un incidente nelle fasi finali della tappa 17. Al momento della partenza, la Lidl-Trek ha controllato i primi 24 chilometri fino allo sprint intermedio, dove Jonathan Milan ha ulteriormente aumentato il suo vantaggio nella classifica a punti tagliando per primo il traguardo. Verso i piedi del Col du Glandon, il gruppo ha sferrato una serie di attacchi fino a quando, a metà salita, si è formato un gruppo di 14 corridori. Il gruppo comprendeva Primož Roglič (Red Bull-Bora-Hansgrohe), che era quinto in classifica generale con quasi 12 minuti di ritardo all'inizio della giornata, e Felix Gall (Decathlon AG2R La Mondiale Team), che era settimo in classifica generale. Si sono formati dei gruppi di inseguitori dietro alla fuga principale, ma non sono riusciti a raggiungere i primi. In cima, Lenny Martinez (Bahrain Victorious) ha conquistato 20 punti per la classifica degli scalatori; tuttavia, alla fine della tappa è stato penalizzato di 8 punti per aver abusato del bidon collé per tornare nel gruppo di testa. Il gruppo, guidato dall'UAE Team Emirates XRG, ha scollinato con un ritardo di circa due minuti.
Durante la discesa dal Col du Glandon, Matteo Jorgenson (Team Visma-Lease a Bike) e Thymen Arensman (Ineos Grenadiers) hanno staccato il resto del gruppo di testa, portandosi in vantaggio di quasi un minuto ai piedi del Col de la Madeleine. Sulle pendici della salita, la Visma–Lease a Bike ha iniziato a imporre un ritmo infernale per preparare l'attacco di Vingegaard. Sepp Kuss è riuscito a ridurre il gruppo della classifica generale a lui, Jonas Vingegaard e Tadej Pogačar. A 72 chilometri dall'arrivo e ancora a 5 chilometri dalla cima della Madeleine, Vingegaard ha attaccato con Pogačar immediatamente sulla sua ruota. Il duo ha raggiunto il resto del gruppo di testa, composto da Jorgenson, Arensman, Roglič, Gall, Ben O'Connor (Team Jayco-AlUla) ed Einer Rubio (Movistar Team). Vingegaard ha guidato il gruppo in cima alla salita, con mezzo minuto di vantaggio su Florian Lipowitz e quasi due minuti sugli altri contendenti della classifica generale.
Quando il gruppo di testa ha raggiunto la sezione valliva prima del Col de la Loze, il ritmo si è interrotto, consentendo a O'Connor, Rubio e Jorgenson di attaccare in testa con 42 chilometri ancora da percorrere. Anche Lipowitz è riuscito a raggiungere il resto del gruppo prima di lanciare un contrattacco. Il gruppo con Pogačar e Vingegaard è rapidamente ricaduto nel gruppo della classifica generale, che era quasi quattro minuti dietro al gruppo di testa ai piedi del Col de la Loze. Durante la salita, Jorgenson è stato rapidamente staccato dal gruppo di testa, mentre O'Connor ha staccato Rubio a 16 chilometri dall'arrivo. Nel frattempo, Lipowitz non è riuscito a raggiungere la testa della corsa e ha gradualmente perso terreno rispetto al gruppo della maglia gialla. Con il gruppo della classifica generale che ha mantenuto un ritmo costante per gran parte della salita, O'Connor è rimasto in testa e ha vinto la sua seconda tappa al Tour. Negli ultimi 2 chilometri, Vingegaard ha lanciato un attacco che è stato seguito solo da Pogačar e Oscar Onley (Team Picnic PostNL). Pogačar ha contrattaccato nell'ultimo chilometro, staccando Vingegaard e Onley e superando Rubio per conquistare il secondo posto nella tappa, con un ritardo di 1'45" da O'Connor. Vingegaard ha conquistato il terzo posto, perdendo un totale di 11 secondi da Pogačar.
Nella classifica generale, Pogačar ha aumentato il suo vantaggio su Vingegaard a quasi quattro minuti e mezzo. Lipowitz ha mantenuto il terzo posto, ma il suo vantaggio su Onley è sceso a 22 secondi dopo che Onley ha guadagnato più di un minuto e mezzo sul tedesco. I guadagni di O'Connor nella giornata gli hanno permesso di entrare nella top-10 al decimo posto.[20]
La diciannovesima tappa è stata la seconda nelle Alpi. Il percorso originale prevedeva 129,9 km da Albertville a La Plagne, con cinque salite categorizzate, tra cui il primo categoria Col des Saisies (13,7 km al 6,4%), l'hors catégorie Col du Pré (12,6 km al 7,7%) e l'arrivo in vetta a La Plagne, una salita hors catégorie lunga 19,1 km con una pendenza media del 7,2%. Tuttavia, un'epidemia di dermatite nodulare contagiosa tra il bestiame sul Col des Saisies ha costretto gli organizzatori a modificare il percorso della tappa, eliminando appunto il Col des Saisies e la Côte d'Héry-sur-Ugine e accorciando la lunghezza complessiva della tappa a 93,1 km.
Come il giorno precedente, la Lidl-Trek ha preso il controllo del gruppo fino allo sprint intermedio dopo 12 km di corsa, dove Milan ha ancora una volta ottenuto il massimo dei punti per consolidare la sua leadership nella classifica a punti. Quando i corridori hanno raggiunto il Col du Pré, diversi corridori hanno tentato di guadagnare terreno fino a quando una fuga di tre uomini composta da Primož Roglič (Red Bull-Bora-Hansgrohe), Lenny Martinez (Bahrain Victorious) e Valentin Paret-Peintre (Soudal Quick-Step) è rimasta in testa. Victor Campenaerts (Team Visma-Lease a Bike), Bruno Armirail (Decathlon AG2R La Mondiale Team), Einer Rubio (Movistar Team) e Tobias Foss (Ineos Grenadiers) hanno formato un gruppo di inseguitori, ma non sono riusciti a raggiungere il gruppo di testa. Martinez ha conquistato il massimo dei punti in cima alla salita, mentre il gruppo è transitato in cima a poco meno di un minuto. Sulla salita successiva, il Cormet de Roselend, Kévin Vauquelin (Arkéa-B&B Hotels) ha iniziato a faticare nel gruppo della classifica generale, inducendo la Uno-X Mobility a fare il passo del gruppo nel tentativo di far salire Tobias Halland Johannessen in classifica. Martinez ha conquistato nuovamente il massimo dei punti in cima alla salita, portandosi a 8 punti di distanza dal primato di Tadej Pogačar (UAE Team Emirates XRG) nella classifica degli scalatori. A questo punto, il gruppo era ancora a meno di un minuto dalla fuga.
Sulla discesa del Cormet de Roselend, la fuga si è spezzata e Roglič si è staccato in solitaria. Martinez e Paret-Peintre sono stati assorbiti dal gruppo in fondo alla discesa, mentre Roglič è stato infine ripreso poco prima che i corridori raggiungessero le pendici di La Plagne. La UAE Team Emirates XRG ha mantenuto il ritmo sulla salita fino a quando la Decathlon-AG2R La Mondiale ha preso il sopravvento dopo il cedimento di Roglič, con Felix Gall che doveva recuperare quasi tre minuti su Roglič per entrare nella top five della classifica generale. A 14 chilometri dal traguardo, Thymen Arensman (Ineos Grenadiers) ha attaccato, staccando il gruppo della classifica generale. Poco dopo, Pogačar ha lanciato una sua azione, staccando tutti tranne Jonas Vingegaard (Visma-Lease a Bike) e raggiungendo Arensman. Arensman ha accelerato altre due volte fino a superare Pogačar e Vingegaard. Ha accumulato un vantaggio di circa mezzo minuto, mentre i primi due della classifica generale sono tornati nel gruppo della GC. Pogačar ha fatto un'altra mossa a 7 km dall'arrivo, riducendo il gruppo a lui, Vingegaard, Florian Lipowitz (Red Bull-Bora-Hansgrohe) e Oscar Onley (Team Picnic PostNL). Negli ultimi 2 chilometri Onley ha iniziato a faticare, spingendo Lipowitz a spostarsi in testa al gruppo per consolidare il suo vantaggio. I tre si sono avvicinati ad Arensman, ma l'olandese ha resistito vincendo la sua seconda tappa del Tour di quest'anno. Vingegaard si è piazzato secondo a due secondi di distanza, con Pogačar alle sue spalle.
In classifica generale, il vantaggio di Pogačar si è ridotto di due secondi a causa di un maggior numero di secondi di abbuono vinti da Vingegaard. Lipowitz ha aumentato il suo vantaggio per il terzo posto, guadagnando 41 secondi su Onley. Gall è riuscito a entrare nella top five dopo aver guadagnato più di 11 minuti su Roglič, che è sceso all'ottavo posto in classifica generale. Johannessen è salito di due posizioni, passando al sesto posto grazie ai ritardi a fine tappa di Vauquelin e Roglič.[21]
Lasciate le Alpi, la gara si è diretta verso nord con una tappa collinare di 184,2 chilometri da Nantua a Pontarlier con quattro salite classificate (una di seconda categoria, una di terza categoria, due di quarta categoria) lungo il percorso.
Una lunga lotta per entrare nella fuga di giornata ha segnato l'inizio della tappa. A un certo punto, il gruppo si è diviso in due, con Oscar Onley (Team Picnic PostNL) e Felix Gall (Decathlon AG2R La Mondiale Team) tra quelli rimasti indietro. Il gruppo si è poi ricompattato prima che un gruppo composto da Tim Wellens (UAE Team Emirates XRG), Matteo Jorgenson (Team Visma-Lease a Bike) ed Ewen Costiou (Arkéa-B&B Hotels) prendesse il largo a 136 chilometri dall'arrivo. Pochi chilometri dopo, altri 10 corridori si sono uniti a loro, portando a 13 il numero dei fuggitivi. Jordan Jegat (TotalEnergies), che all'inizio della giornata era undicesimo in classifica generale, è riuscito a infiltrarsi nella fuga, costringendo il Team Jayco-AlUla a tenere sotto controllo la situazione, dato che Ben O'Connor, decimo in classifica generale, aveva quattro minuti di vantaggio su Jegat. Tuttavia, il vantaggio della fuga continuava ad aumentare, minacciando il decimo posto di O'Connor in classifica generale. Sulla Côte de Thésy, a 65 chilometri dall'arrivo, Jegat ha attaccato dalla fuga, seguito poco dopo da Harry Sweeny (EF Education-EasyPost). Nel frattempo, nel gruppo, si sono susseguiti una serie di attacchi che hanno portato alla formazione di un ampio gruppo di inseguitori. Tuttavia, questi ultimi sono riusciti ad avvicinarsi alla fuga solo di due minuti, prima di perdere gradualmente terreno. A 54 chilometri dal traguardo, Sweeny ha lasciato Jegat alle spalle, lanciandosi in solitaria in testa. Jegat è tornato tra gli inseguitori, mentre il vantaggio di Sweeny ha raggiunto il massimo di circa un minuto.
A 36 chilometri dall'arrivo, sono iniziati gli attacchi nel gruppo degli inseguitori. Un gruppo composto da Romain Grégoire (Groupama-FDJ), Jake Stewart (Israel-Premier Tech), Simone Velasco (XDS Astana Team), Frank van den Broek (Team Picnic PostNL), Kaden Groves (Alpecin-Deceuninck) e Iván Romeo (Movistar Team) si è formato sull'ultima salita classificata, riuscendo a raggiungere e staccare Sweeny e lasciando i sei corridori a lottare in testa. A 21 chilometri dall'arrivo, Romeo e Grégoire sono caduti su una discesa bagnata, mentre Velasco è stato sorpreso, lasciando Groves, Stewart e van den Broek in testa. Poco dopo, Groves è riuscito a guadagnare un vantaggio, mentre Stewart e van den Broek si sono guardati e hanno lasciato andare la ruota di Groves. Il vantaggio di Groves è cresciuto gradualmente verso il traguardo, mentre si avvicinava alla vittoria di tappa in solitaria. La vittoria ha significato per lui il completamento della trilogia di vittorie di tappa in tutti e tre i Grandi Giri. Nel frattempo, il resto del gruppo in fuga, compreso Jegat, ha chiuso con circa un minuto di ritardo. Il gruppo ha tagliato il traguardo con sette minuti di ritardo, il che ha significato che Jegat ha superato O'Connor per il decimo posto nella classifica generale. Inoltre, Tadej Pogačar (UAE Team Emirates XRG) e Jonathan Milan (Lidl-Trek) si sono matematicamente assicurati rispettivamente la classifica degli scalatori e quella a punti, a condizione che finiscano la tappa successiva.[22]
La tappa finale del Tour è tornata a Parigi con la tradizionale tappa finale sugli Champs-Élysées. Tuttavia, a differenza delle precedenti edizioni del Tour, la tappa includeva la salita di Montmartre da ripetere tre volte prima dell'arrivo sugli Champs-Élysées, ispirate alle gare su strada delle Olimpiadi di Parigi 2024. La tappa prevedeva cinque salite di quarta categoria, di cui tre erano le ascese della Côte de la Butte Montmartre (1,1 km al 5,9%). I velocisti hanno fatto notare che non si aspettavano che la tappa si concludesse con uno sprint di gruppo.
Proprio come nelle tappe degli anni passati, la partenza della tappa è stata caratterizzata da un corteo cerimoniale prima che i corridori raggiungessero il circuito sugli Champs-Élysées. Prima che la gara raggiungesse gli Champs-Élysées, gli organizzatori hanno annunciato che la classifica generale sarebbe stata neutralizzata prima di raggiungere il circuito di Montmartre, poiché aveva iniziato a piovere. La UAE Team Emirates XRG ha guidato il gruppo attraverso il primo passaggio del traguardo prima che iniziassero gli attacchi. Il primo distacco significativo è stato ottenuto da Quinn Simmons (Lidl-Trek) e Florian Lipowitz (Red Bull-Bora-Hansgrohe), ma non sono mai riusciti a guadagnare più di 20 secondi sul gruppo prima di essere ripresi a 44 chilometri dall'arrivo. Sulla prima salita della Côte de la Butte Montmartre, Julian Alaphilippe (Tudor Pro Cycling Team) ha attaccato dal fondo, portando in testa un gruppo di 28 corridori, tra cui Tadej Pogačar (UAE Team Emirates XRG). Hanno gradualmente aumentato il loro vantaggio sul primo gruppo di inseguitori, che includeva Jonathan Milan (Lidl-Trek), prima di tornare indietro verso la salita di Montmartre per la seconda volta.
Sulla seconda salita di Montmartre, Pogačar ha aumentato il ritmo, seguito solo da Wout Van Aert, Matteo Jorgenson (Team Visma-Lease a Bike), Davide Ballerini (XDS Astana Team), Matteo Trentin (Tudor Pro Cycling Team) e Matej Mohorič (Bahrain Victorious). Il gruppo di sei ha continuato ad aumentare il vantaggio sul gruppo degli inseguitori, impedendo loro di recuperare. All'avvicinarsi della salita finale di Montmartre, Jorgenson ha accelerato, ma è stato raggiunto. Pogačar ha immediatamente attaccato ai piedi della salita, con solo van Aert in grado di stargli dietro. Verso la cima, van Aert è riuscito a lanciare un contrattacco, distanziando Pogačar, che è stato presto riassorbito dal gruppo degli inseguitori. Van Aert ha tagliato il traguardo in solitaria, vincendo con 19 secondi di vantaggio sugli inseguitori. Pogačar ha concluso al quarto posto, confermando la sua quarta vittoria al Tour e la classifica degli scalatori. Anche Milan e Lipowitz hanno tagliato il traguardo senza problemi, confermando rispettivamente la vittoria nella classifica a punti e in quella dei giovani. Poco dopo ha avuto inizio la tradizionale cerimonia di premiazione.[23]