
Tuesday, July 7: Stage 4, Carcassonne - Foix, 181.9 km
Stage 4 map & profile | Stage 4 photos

Mads Pedersen wins stage four.
Les Woodland's book Dirty Feet: How the Great Unwashed Created the Tour de France is available in print, Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Foix at 2:10 PM, local time: 37C (98F), sunny, with the wind from the north-northwest at 11 km/hr (7 mph). No rain is forecast.
Rated ascents:
The stage: Tour boss Christian Prudhomme writes: Crossing Cathar country and then tackling some of the less challenging climbs in the Ariège opens up a number of possibilities. There could well be a tense duel between a group of breakaway riders and those sprinters who can hold their own in the hills. Whatever happens, by the time the riders go over the Col de Montségur, 34km from the finish, the first selection of contenders for victory in the shadow of the Château de Foix will already have been made.
The race: 182 riders started stage four at 1:27.
25 kilometers into the stage a break of 34 riders were two minutes ahead of the peloton. None of the escaped riders were GC threats. The highest placed escapee was Torstein Traeen, 24th in GC @ 5min 6sec.
Here's the race organizer's stage four summary:
The first stage of the Tour de France 2026 held entirely in France, crowned two Nordic champions after exhilarating racing in the southern departments of Aude and Ariège. Mads Pedersen joined the breakaway and survived the day’s ascents. With essential support of Lidl-Trek teammates also at the front, the Danish powerhouse eventually took his third stage win in the race, after winning in Saint-Étienne (2022) and Limoges (2023).
In second place, Quinn Simmons completes the team’s triumph on the day. Pedersen takes the green jersey as leader of the points classification, a first for him in the Tour. Also at the front, Torstein Træen takes the Maillot Jaune from Tadej Pogacar (UAE Emirates-XRG). He is the third Norwegian to lead the Tour de France overall standings. The first was Thor Hushovd, now the general manager of Uno-X Mobility, who had never led GC in a Grand Tour.
The race:
The Tour entered France on day 3 and the riders are set for the first stage of this edition to be raced entirely in the home nation. The 181.9 km route to Foix links two medieval cities and offers spectacular terrain for battle, with 2,700 metres of elevation gain, a couple of cat. 2 ascents, and a flat finish. A 182-man peloton set off under the sun from Carcassonne, a city associated with successful breakaways.
An impressive 34-man breakaway
All sorts of attackers are inspired. Quinn Simmons (Lidl-Trek) sets off as soon as the flag is dropped. But he’s rapidly reeled in and a fierce battle for the break ensues.
Alex Kirsch (Cofidis) is the first rider to get away, from kilometre two. Mads Pedersen (Lidl-Trek) rapidly reacts and brings a dozen riders with him. Eventually, a group of 34 attackers becomes consolidated after 16 kilometres of battle.

The break of 34 riders 25 kilometers into the stage.
There are three former winners of the points standings at the front: Jasper Philipsen (Alpecin-Premier Tech), Biniam Girmay (NSN), and Michael Matthews (Jayco AlUla). Along with them and Pedersen, Kévin Vauquelin (Netcompany Ineos) and Ion Izagirre (Cofidis) are the other two Tour stage winners in the breakaway. Torstein Træen (Uno-X Mobility) is the best placed rider in the breakaway on GC (24th, +5’06’’).
A hard-fought intermediate sprint
Alex Molenaar (Caja Rural-Seguros RGA) is also up there to try and reclaim the polka-dot jersey he lost to Alex Baudin (EF Education-EasyPost) on day 3. The Dutch baroudeur takes 3 KOM points across the ascents of Bedos (cat. 4, summit at km 48.2) and Paradis (cat. 3, km 64.9). Meanwhile, UAE Emirates-XRG control the gap at around three minutes and a half.
The peloton’s pace eases up en route to the intermediate sprint (km 93.4), where Girmay takes 25 points ahead of Philipsen and Pedersen. Onto the climb up to Col de Coudons, Jan Tratnik (Red Bull-Bora-Hansgrohe) accelerates at the front of the race. Mathias Vacek (Lidl-Trek) follows him but doesn’t collaborate. They are joined by Alex Kirsch (Cofidis) after the summit. At that point, the gap to the bunch is already up to over 7 minutes, and Træen leads the virtual standings.
A dominant Lidl-Trek
With Michael Valgren and Georg Steinhauser to support Sean Quinn, EF Education-EasyPost drive the chase. The leaders are caught on the final ascent of the day, Col de Montségur (cat. 2, km 146.7). The best climbers at the front, such as Movistar’s duo made of Pablo Castrillo and Raul Garcia Pierna, give it their all to distance Mads Pedersen. But the Dane survives the climb with two teammates: Vacek and Simmons.
Despite a flurry of attacks, mostly from Castrillo and Garcia Pierna, Pedersen’s luxury domestiques control the stage all the way to the sprint. Kévin Vauquelin tries to surprise them with 350 metres but nobody can react when Pedersen unleashes his power. Simmons completes a dominant 1-2 for Lidl-Trek.

GC leader Tadej Pogacar late in the stage with a break more than 12 minutes up the road. Pogacar will not be in yellow after this stage.
The peloton finishes 13 minutes behind. For the third year in a row, Tadej Pogacar loses the Maillot Jaune on the first day he wears it. This time, it favours Træen, Uno-X Mobility and Norway.
Complete results:
181.9 kilometers raced at an average speed of 43.525 km/hr
| 1 | Mads Pedersen | Lidl-Trek | 4hr 10min 45sec |
| 2 | Quinn Simmons | Lidl-Trek | s.t. |
| 3 | Raúl García | Movistar Team | s.t. |
| 4 | Marco Frigo | NSN Cycling Team | s.t. |
| 5 | Ramses Debruyne | Alpecin-Premier Tech | s.t. |
| 6 | Kévin Vauquelin | Netcompany INEOS Cycling Team | s.t. |
| 7 | Sean Quinn | EF Education-EasyPost | s.t. |
| 8 | Torstein Træen | Uno-X Mobility | s.t. |
| 9 | Pablo Castrillo | Movistar Team | s.t. |
| 10 | Mathias Vacek | Lidl-Trek | s.t. |
| 11 | Michael Matthews | Team Jayco-AlUla | @ 2min 27sec |
| 12 | Alexandre Delettre | Team TotalEnergies | s.t. |
| 13 | Vlad Van Mechelen | Bahrain Victorious | s.t. |
| 14 | Jasper Stuyven | Soudal Quick-Step | s.t. |
| 15 | Alex Molenaar | Caja Rural-Seguros RGA | s.t. |
| 16 | Frank van den Broek | Team Picnic PostNL | s.t. |
| 17 | Georg Zimmermann | Lotto-Intermarché | s.t. |
| 18 | Quinten Hermans | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 19 | Joel Nicolau | Caja Rural-Seguros RGA | s.t. |
| 20 | Ion Izagirre | Cofidis | s.t. |
| 21 | Nico Denz | Red Bull-BORA-hansgrohe | s.t. |
| 22 | Romain Grégoire | Groupama-FDJ United | s.t. |
| 23 | Pascal Eenkhoorn | Soudal Quick-Step | 7:54 |
| 24 | Alex Kirsch | Cofidis | s.t. |
| 25 | Brent Van Moer | Pinarello-Q36.5 Pro Cycling Team | 7:58 |
| 26 | Jan Tratnik | Red Bull-BORA-hansgrohe | s.t. |
| 27 | Michael Valgren | EF Education-EasyPost | s.t. |
| 28 | Edward Planckaert | Alpecin-Premier Tech | s.t. |
| 29 | Ewen Costiou | Groupama-FDJ United | s.t. |
| 30 | Adam Yates | UAE Team Emirates-XRG | 12:59 |
| 31 | Felix Grossschartner | UAE Team Emirates-XRG | s.t. |
| 32 | Brandon McNulty | UAE Team Emirates-XRG | s.t. |
| 33 | Tadej Pogacar | UAE Team Emirates-XRG | s.t. |
| 34 | Isaac del Toro | UAE Team Emirates-XRG | s.t. |
| 35 | Toms Skujins | Lidl-Trek | s.t. |
| 36 | Derek Gee-West | Lidl-Trek | s.t. |
| 37 | Carlos Verona | Lidl-Trek | s.t. |
| 38 | Juan Ayuso | Lidl-Trek | s.t. |
| 39 | Mattias Skjelmose | Lidl-Trek | s.t. |
| 40 | Per Strand Hagenes | Team Visma | Lease a Bike | s.t. |
| 41 | Edoardo Affini | Team Visma | Lease a Bike | s.t. |
| 42 | Matteo Jorgenson | Team Visma | Lease a Bike | s.t. |
| 43 | Jonas Vingegaard | Team Visma | Lease a Bike | s.t. |
| 44 | Davide Piganzoli | Team Visma | Lease a Bike | s.t. |
| 45 | Victor Campenaerts | Team Visma | Lease a Bike | s.t. |
| 46 | Sepp Kuss | Team Visma | Lease a Bike | s.t. |
| 47 | Bruno Armirail | Team Visma | Lease a Bike | s.t. |
| 48 | Tim Wellens | UAE Team Emirates-XRG | s.t. |
| 49 | Daan Hoole | Decathlon CMA CGM Team | s.t. |
| 50 | Paul Seixas | Decathlon CMA CGM Team | s.t. |
| 51 | Aurélien Paret-Peintre | Decathlon CMA CGM Team | s.t. |
| 52 | Tiesj Benoot | Decathlon CMA CGM Team | s.t. |
| 53 | Matthew Riccitello | Decathlon CMA CGM Team | s.t. |
| 54 | Nicolas Prodhomme | Decathlon CMA CGM Team | s.t. |
| 55 | Jai Hindley | Red Bull-BORA-hansgrohe | s.t. |
| 56 | Tim van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 57 | Remco Evenepoel | Red Bull-BORA-hansgrohe | s.t. |
| 58 | Maxim Van Gils | Red Bull-BORA-hansgrohe | s.t. |
| 59 | Mattia Cattaneo | Red Bull-BORA-hansgrohe | s.t. |
| 60 | Florian Lipowitz | Red Bull-BORA-hansgrohe | s.t. |
| 61 | Ben Healy | EF Education-EasyPost | s.t. |
| 62 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 63 | Alex Baudin | EF Education-EasyPost | s.t. |
| 64 | Max Walker | EF Education-EasyPost | s.t. |
| 65 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 66 | Matej Mohoric | Bahrain Victorious | s.t. |
| 67 | Damiano Caruso | Bahrain Victorious | s.t. |
| 68 | Antonio Tiberi | Bahrain Victorious | s.t. |
| 69 | Lenny Martinez | Bahrain Victorious | s.t. |
| 70 | Tobias Halland Johannessen | Uno-X Mobility | s.t. |
| 71 | Anders Skaarseth | Uno-X Mobility | s.t. |
| 72 | Jonas Abrahamsen | Uno-X Mobility | s.t. |
| 73 | Anthon Charmig | Uno-X Mobility | s.t. |
| 74 | Magnus Cort | Uno-X Mobility | s.t. |
| 75 | Anders Halland Johannessen | Uno-X Mobility | s.t. |
| 76 | Xabier Azparren | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 77 | Xandro Meurisse | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 78 | Fred Wright | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 79 | Tom Pidcock | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 80 | Mathis Le Berre | Team TotalEnergies | s.t. |
| 81 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 82 | Julian Alaphilippe | Tudor Pro Cycling Team | s.t. |
| 83 | Yannis Voisard | Tudor Pro Cycling Team | s.t. |
| 84 | Nelson Oliveira | Movistar Team | s.t. |
| 85 | Rick Pluimers | Tudor Pro Cycling Team | s.t. |
| 86 | Cian Uijtdebroeks | Movistar Team | s.t. |
| 87 | Jefferson Cepeda | Movistar Team | s.t. |
| 88 | Thymen Arensman | Netcompany INEOS Cycling Team | s.t. |
| 89 | Michal Kwiatkowski | Netcompany INEOS Cycling Team | s.t. |
| 90 | Egan Bernal | Netcompany INEOS Cycling Team | s.t. |
| 91 | Jordan Jegat | Team TotalEnergies | s.t. |
| 92 | Ilan Van Wilder | Soudal Quick-Step | s.t. |
| 93 | Tobias Foss | Netcompany INEOS Cycling Team | s.t. |
| 94 | Louis Vervaeke | Soudal Quick-Step | s.t. |
| 95 | Ben O'Connor | Team Jayco-AlUla | s.t. |
| 96 | Valentin Paret-Peintre | Soudal Quick-Step | s.t. |
| 97 | Clément Russo | Groupama-FDJ United | s.t. |
| 98 | Aaron Gate | XDS Astana Team | s.t. |
| 99 | Lorenzo Germani | Groupama-FDJ United | s.t. |
| 100 | Guillaume Martin-Guyonnet | Groupama-FDJ United | s.t. |
| 101 | Sergio Higuita | XDS Astana Team | s.t. |
| 102 | Harold Tejada | XDS Astana Team | s.t. |
| 103 | Jakub Otruba | Caja Rural-Seguros RGA | s.t. |
| 104 | Jenthe Biermans | Cofidis | s.t. |
| 105 | Hugo Page | Cofidis | s.t. |
| 106 | Sebastian Berwick | Caja Rural-Seguros RGA | s.t. |
| 107 | Tom Van Asbroeck | NSN Cycling Team | s.t. |
| 108 | José Félix Parra | Caja Rural-Seguros RGA | s.t. |
| 109 | Jenno Berckmoes | Lotto-Intermarché | s.t. |
| 110 | Lars Craps | Lotto-Intermarché | s.t. |
| 111 | Lennert Van Eetvelt | Lotto-Intermarché | s.t. |
| 112 | Thibault Guernalec | Team TotalEnergies | s.t. |
| 113 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 114 | Frits Biesterbos | Team Picnic PostNL | s.t. |
| 115 | Robert Stannard | Bahrain Victorious | s.t. |
| 116 | Javier Romo | Movistar Team | s.t. |
| 117 | Einer Rubio | Movistar Team | s.t. |
| 118 | Michel Hessmann | Movistar Team | s.t. |
| 119 | Warren Barguil | Team Picnic PostNL | s.t. |
| 120 | Quentin Pacher | Groupama-FDJ United | s.t. |
| 121 | Clément Braz Afonso | Groupama-FDJ United | s.t. |
| 122 | Jonas Rickaert | Alpecin-Premier Tech | s.t. |
| 123 | Silvan Dillier | Alpecin-Premier Tech | s.t. |
| 124 | Tim Marsman | Alpecin-Premier Tech | s.t. |
| 125 | Robbe Dhondt | Team Picnic PostNL | s.t. |
| 126 | Abel Balderstone | Caja Rural-Seguros RGA | s.t. |
| 127 | Felix Engelhardt | Team Jayco-AlUla | s.t. |
| 128 | Emiel Verstrynge | Alpecin-Premier Tech | s.t. |
| 129 | Nils Politt | UAE Team Emirates-XRG | s.t. |
| 130 | Marc Hirschi | Tudor Pro Cycling Team | s.t. |
| 131 | Mauro Schmid | Team Jayco-AlUla | s.t. |
| 132 | Nicolas Breuillard | Team TotalEnergies | s.t. |
| 133 | Joris Delbove | Team TotalEnergies | s.t. |
| 134 | Mathieu van der Poel | Alpecin-Premier Tech | s.t. |
| 135 | Krists Neilands | NSN Cycling Team | s.t. |
| 136 | Anthony Turgis | Team TotalEnergies | s.t. |
| 137 | Baptiste Veistroffer | Lotto-Intermarché | s.t. |
| 138 | George Bennett | NSN Cycling Team | s.t. |
| 139 | Luke Durbridge | Team Jayco-AlUla | s.t. |
| 140 | Mattéo Vercher | Team TotalEnergies | s.t. |
| 141 | Luke Plapp | Team Jayco-AlUla | s.t. |
| 142 | Damien Howson | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 143 | Simone Velasco | XDS Astana Team | s.t. |
| 144 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 145 | Benjamin Thomas | Cofidis | s.t. |
| 146 | Georg Steinhauser | EF Education-EasyPost | 14:17 |
| 147 | Alex Aranburu | Cofidis | 14:24 |
| 148 | Nicolas Vinokurov | XDS Astana Team | 14:50 |
| 149 | Pavel Bittner | Team Picnic PostNL | 22:08 |
| 150 | Julius van den Berg | Team Picnic PostNL | s.t. |
| 151 | John Degenkolb | Team Picnic PostNL | s.t. |
| 152 | Dorian Godon | Netcompany INEOS Cycling Team | s.t. |
| 153 | Max Kanter | XDS Astana Team | s.t. |
| 154 | Mike Teunissen | XDS Astana Team | s.t. |
| 155 | Stefano Oldani | Caja Rural-Seguros RGA | s.t. |
| 156 | Milan Fretin | Cofidis | s.t. |
| 157 | Florian Vermeersch | UAE Team Emirates-XRG | s.t. |
| 158 | Lewis Askey | NSN Cycling Team | s.t. |
| 159 | Phil Bauhaus | Bahrain Victorious | s.t. |
| 160 | Piet Allegaert | Cofidis | s.t. |
| 161 | Cees Bol | Decathlon CMA CGM Team | s.t. |
| 162 | Søren Wærenskjold | Uno-X Mobility | s.t. |
| 163 | Olav Kooij | Decathlon CMA CGM Team | s.t. |
| 164 | Kamil Gradek | Bahrain Victorious | s.t. |
| 165 | Davide Ballerini | XDS Astana Team | s.t. |
| 166 | Fernando Gaviria | Caja Rural-Seguros RGA | s.t. |
| 167 | Biniam Girmay | NSN Cycling Team | s.t. |
| 168 | Matis Louvel | NSN Cycling Team | s.t. |
| 169 | Jake Stewart | NSN Cycling Team | s.t. |
| 170 | Filippo Ganna | Netcompany INEOS Cycling Team | s.t. |
| 171 | Tim Merlier | Soudal Quick-Step | s.t. |
| 172 | Dylan van Baarle | Soudal Quick-Step | 22:41 |
| 173 | Huub Artz | Lotto-Intermarché | s.t. |
| 174 | Bert Van Lerberghe | Soudal Quick-Step | s.t. |
| 175 | Jasper Philipsen | Alpecin-Premier Tech | s.t. |
| 176 | Pascal Ackermann | Team Jayco-AlUla | s.t. |
| 177 | Liam Slock | Lotto-Intermarché | s.t. |
| 178 | Joshua Tarling | Netcompany INEOS Cycling Team | 23:29 |
| 179 | Marco Haller | Tudor Pro Cycling Team | 25:13 |
| 180 | Matteo Trentin | Tudor Pro Cycling Team | s.t. |
| 181 | Arvid de Kleijn | Tudor Pro Cycling Team | s.t. |
| OTL | Kelland O'Brien | Team Jayco-AlUla |
GC after stage 4:
565.9 kilometers raced so far at an average speed of 43.377 km/hr
| 1 | Torstein Træen | Uno-X Mobility | 13hr 2min 46sec |
| 2 | Sean Quinn | EF Education-EasyPost | @ 28sec |
| 3 | Mathias Vacek | Lidl-Trek | 3:50 |
| 4 | Tadej Pogacar | UAE Team Emirates-XRG | 7:53 |
| 5 | Jonas Vingegaard | Team Visma | Lease a Bike | 7:53 |
| 6 | Ramses Debruyne | Alpecin-Premier Tech | 8:06 |
| 7 | Remco Evenepoel | Red Bull-BORA-hansgrohe | 8:16 |
| 8 | Isaac del Toro | UAE Team Emirates-XRG | 8:17 |
| 9 | Juan Ayuso | Lidl-Trek | 8:20 |
| 10 | Paul Seixas | Decathlon CMA CGM Team | 8:41 |
| 11 | Florian Lipowitz | Red Bull-BORA-hansgrohe | 8:46 |
| 12 | Lenny Martinez | Bahrain Victorious | 9:02 |
| 13 | Tobias Halland Johannessen | Uno-X Mobility | 9:04 |
| 14 | Ilan Van Wilder | Soudal Quick-Step | 9:10 |
| 15 | Tom Pidcock | Pinarello-Q36.5 Pro Cycling Team | 9:15 |
| 16 | Richard Carapaz | EF Education-EasyPost | 9:38 |
| 17 | Lennert Van Eetvelt | Lotto-Intermarché | 9:40 |
| 18 | Mattias Skjelmose | Lidl-Trek | 9:43 |
| 19 | Davide Piganzoli | Team Visma | Lease a Bike | 10:08 |
| 20 | Thymen Arensman | Netcompany INEOS Cycling Team | 10:12 |
| 21 | Jordan Jegat | Team TotalEnergies | 10:21 |
| 22 | Sergio Higuita | XDS Astana Team | 11:16 |
| 23 | Cian Uijtdebroeks | Movistar Team | 11:17 |
| 24 | Pablo Castrillo | Movistar Team | 11:22 |
| 25 | Raúl García | Movistar Team | 11:34 |
| 26 | Yannis Voisard | Tudor Pro Cycling Team | 11:43 |
| 27 | Egan Bernal | Netcompany INEOS Cycling Team | 12:08 |
| 28 | José Félix Parra | Caja Rural-Seguros RGA | 12:14 |
| 29 | Harold Tejada | XDS Astana Team | 12:31 |
| 30 | Alex Baudin | EF Education-EasyPost | 13:12 |
| 31 | Ion Izagirre | Cofidis | 13:28 |
| 32 | Tiesj Benoot | Decathlon CMA CGM Team | 13:38 |
| 33 | Adam Yates | UAE Team Emirates-XRG | 13:53 |
| 34 | Jai Hindley | Red Bull-BORA-hansgrohe | 13:54 |
| 35 | Antonio Tiberi | Bahrain Victorious | 15:10 |
| 36 | Quinn Simmons | Lidl-Trek | 16:00 |
| 37 | Kévin Vauquelin | Netcompany INEOS Cycling Team | 16:39 |
| 38 | Sepp Kuss | Team Visma | Lease a Bike | 17:37 |
| 39 | Brandon McNulty | UAE Team Emirates-XRG | 17:48 |
| 40 | Guillaume Martin-Guyonnet | Groupama-FDJ United | 18:08 |
| 41 | Romain Grégoire | Groupama-FDJ United | 18:27 |
| 42 | George Bennett | NSN Cycling Team | 18:46 |
| 43 | Matteo Jorgenson | Team Visma | Lease a Bike | 19:12 |
| 44 | Quinten Hermans | Pinarello-Q36.5 Pro Cycling Team | 19:40 |
| 45 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 23:40 |
| 46 | Nicolas Prodhomme | Decathlon CMA CGM Team | 23:59 |
| 47 | Anders Skaarseth | Uno-X Mobility | 24:03 |
| 48 | Aurélien Paret-Peintre | Decathlon CMA CGM Team | 24:21 |
| 49 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | 24:27 |
| 50 | Abel Balderstone | Caja Rural-Seguros RGA | 24:42 |
| 51 | Nicolas Breuillard | Team TotalEnergies | 24:53 |
| 52 | Valentin Paret-Peintre | Soudal Quick-Step | 25:51 |
| 53 | Carlos Verona | Lidl-Trek | 27:54 |
| 54 | Felix Grossschartner | UAE Team Emirates-XRG | 28:01 |
| 55 | Vlad Van Mechelen | Bahrain Victorious | 28:52 |
| 56 | Derek Gee-West | Lidl-Trek | 29:06 |
| 57 | Mattéo Vercher | Team TotalEnergies | 29:16 |
| 58 | Michael Matthews | Team Jayco-AlUla | 30:10 |
| 59 | Georg Zimmermann | Lotto-Intermarché | 31:17 |
| 60 | Clément Braz Afonso | Groupama-FDJ United | s.t. |
| 61 | Javier Romo | Movistar Team | 32:19 |
| 62 | Alexandre Delettre | Team TotalEnergies | 32:53 |
| 63 | Marco Frigo | NSN Cycling Team | 32:54 |
| 64 | Marc Hirschi | Tudor Pro Cycling Team | 33:25 |
| 65 | Mathieu van der Poel | Alpecin-Premier Tech | 33:40 |
| 66 | Jasper Stuyven | Soudal Quick-Step | 34:35 |
| 67 | Joris Delbove | Team TotalEnergies | 34:48 |
| 68 | Nelson Oliveira | Movistar Team | 35:14 |
| 69 | Damiano Caruso | Bahrain Victorious | 35:50 |
| 70 | Lorenzo Germani | Groupama-FDJ United | 35:53 |
| 71 | Xandro Meurisse | Pinarello-Q36.5 Pro Cycling Team | 36:08 |
| 72 | Mattia Cattaneo | Red Bull-BORA-hansgrohe | 36:44 |
| 73 | Kasper Asgreen | EF Education-EasyPost | 36:51 |
| 74 | Pascal Eenkhoorn | Soudal Quick-Step | 37:04 |
| 75 | Victor Campenaerts | Team Visma | Lease a Bike | 37:08 |
| 76 | Joel Nicolau | Caja Rural-Seguros RGA | 37:22 |
| 77 | Alex Aranburu | Cofidis | 37:34 |
| 78 | Mads Pedersen | Lidl-Trek | s.t. |
| 79 | Frank van den Broek | Team Picnic PostNL | 37:40 |
| 80 | Ben O'Connor | Team Jayco-AlUla | 38:23 |
| 81 | Einer Rubio | Movistar Team | 38:30 |
| 82 | Michael Storer | Tudor Pro Cycling Team | 38:32 |
| 83 | Nico Denz | Red Bull-BORA-hansgrohe | 39:10 |
| 84 | Toms Skujins | Lidl-Trek | 39:21 |
| 85 | Luke Plapp | Team Jayco-AlUla | 39:22 |
| 86 | Mauro Schmid | Team Jayco-AlUla | 40:21 |
| 87 | Ewen Costiou | Groupama-FDJ United | 40:27 |
| 88 | Sebastian Berwick | Caja Rural-Seguros RGA | 41:35 |
| 89 | Mathis Le Berre | Team TotalEnergies | 42:29 |
| 90 | Emiel Verstrynge | Alpecin-Premier Tech | 42:35 |
| 91 | Magnus Cort | Uno-X Mobility | 43:22 |
| 92 | Tim Wellens | UAE Team Emirates-XRG | 43:25 |
| 93 | Georg Steinhauser | EF Education-EasyPost | 43:33 |
| 94 | Jefferson Cepeda | Movistar Team | 43:39 |
| 95 | Michael Valgren | EF Education-EasyPost | 43:49 |
| 96 | Louis Vervaeke | Soudal Quick-Step | 43:52 |
| 97 | Edward Planckaert | Alpecin-Premier Tech | 43:58 |
| 98 | Rick Pluimers | Tudor Pro Cycling Team | 44:09 |
| 99 | Simone Velasco | XDS Astana Team | s.t. |
| 100 | Ben Healy | EF Education-EasyPost | 44:24 |
| 101 | Quentin Pacher | Groupama-FDJ United | 44:38 |
| 102 | Brent Van Moer | Pinarello-Q36.5 Pro Cycling Team | 44:48 |
| 103 | Jan Tratnik | Red Bull-BORA-hansgrohe | 45:11 |
| 104 | Jonas Abrahamsen | Uno-X Mobility | 45:22 |
| 105 | Jenno Berckmoes | Lotto-Intermarché | s.t. |
| 106 | Lars Craps | Lotto-Intermarché | 45:25 |
| 107 | Tobias Foss | Netcompany INEOS Cycling Team | 45:48 |
| 108 | Nils Politt | UAE Team Emirates-XRG | 45:49 |
| 109 | Jakub Otruba | Caja Rural-Seguros RGA | 46:14 |
| 110 | Robert Stannard | Bahrain Victorious | 46:17 |
| 111 | Clément Russo | Groupama-FDJ United | 46:19 |
| 112 | Benjamin Thomas | Cofidis | 46:31 |
| 113 | Luke Durbridge | Team Jayco-AlUla | 46:53 |
| 114 | Thibault Guernalec | Team TotalEnergies | 47:15 |
| 115 | Michel Heßmann | Movistar Team | 47:17 |
| 116 | Aaron Gate | XDS Astana Team | 47:41 |
| 117 | Anthon Charmig | Uno-X Mobility | s.t. |
| 118 | Max Walker | EF Education-EasyPost | 47:48 |
| 119 | Damien Howson | Pinarello-Q36.5 Pro Cycling Team | 47:50 |
| 120 | Warren Barguil | Team Picnic PostNL | 48:11 |
| 121 | Krists Neilands | NSN Cycling Team | 48:36 |
| 122 | Jonas Rickaert | Alpecin-Premier Tech | 48:37 |
| 123 | Matej Mohoric | Bahrain Victorious | 48:48 |
| 124 | Alex Molenaar | Caja Rural-Seguros RGA | 49:00 |
| 125 | Felix Engelhardt | Team Jayco-AlUla | 49:02 |
| 126 | Anthony Turgis | Team TotalEnergies | 49:13 |
| 127 | Xabier Azparren | Pinarello-Q36.5 Pro Cycling Team | 49:17 |
| 128 | Silvan Dillier | Alpecin-Premier Tech | 49:36 |
| 129 | Daan Hoole | Decathlon CMA CGM Team | 50:10 |
| 130 | Alex Kirsch | Cofidis | 50:40 |
| 131 | Matthew Riccitello | Decathlon CMA CGM Team | 50:48 |
| 132 | Dylan van Baarle | Soudal Quick-Step | 51:32 |
| 133 | Bruno Armirail | Team Visma | Lease a Bike | 54:47 |
| 134 | Stefano Oldani | Caja Rural-Seguros RGA | 54:49 |
| 135 | Anders Halland Johannessen | Uno-X Mobility | 55:09 |
| 136 | Nicolas Vinokurov | XDS Astana Team | 55:15 |
| 137 | Mike Teunissen | XDS Astana Team | 55:57 |
| 138 | Julian Alaphilippe | Tudor Pro Cycling Team | 56:55 |
| 139 | Robbe Dhondt | Team Picnic PostNL | 57:27 |
| 140 | Max Kanter | XDS Astana Team | 58:29 |
| 141 | Michal Kwiatkowski | Netcompany INEOS Cycling Team | 58:33 |
| 142 | Biniam Girmay | NSN Cycling Team | 58:42 |
| 143 | Florian Vermeersch | UAE Team Emirates-XRG | 59:29 |
| 144 | Niklas Märkl | Team Picnic PostNL | 59:51 |
| 145 | Jasper Philipsen | Alpecin-Premier Tech | 1:00:36 |
| 146 | Frits Biesterbos | Team Picnic PostNL | 1:01:05 |
| 147 | Tim Marsman | Alpecin-Premier Tech | 1:01:10 |
| 148 | Tom Van Asbroeck | NSN Cycling Team | 1:01:11 |
| 149 | Jenthe Biermans | Cofidis | 1:02:10 |
| 150 | Hugo Page | Cofidis | s.t. |
| 151 | Søren Wærenskjold | Uno-X Mobility | 1:02:38 |
| 152 | Tim van Dijke | Red Bull-BORA-hansgrohe | 1:03:17 |
| 153 | Fred Wright | Pinarello-Q36.5 Pro Cycling Team | 1:03:20 |
| 154 | Per Strand Hagenes | Team Visma | Lease a Bike | 1:03:52 |
| 155 | Matteo Trentin | Tudor Pro Cycling Team | 1:05:35 |
| 156 | Edoardo Affini | Team Visma | Lease a Bike | 1:05:37 |
| 157 | Baptiste Veistroffer | Lotto-Intermarché | 1:06:57 |
| 158 | Dorian Godon | Netcompany INEOS Cycling Team | 1:09:19 |
| 159 | Lewis Askey | NSN Cycling Team | 1:09:20 |
| 160 | Joshua Tarling | Netcompany INEOS Cycling Team | 1:09:57 |
| 161 | Filippo Ganna | Netcompany INEOS Cycling Team | 1:10:07 |
| 162 | John Degenkolb | Team Picnic PostNL | 1:10:14 |
| 163 | Pavel Bittner | Team Picnic PostNL | s.t. |
| 164 | Julius van den Berg | Team Picnic PostNL | 1:10:37 |
| 165 | Matis Louvel | NSN Cycling Team | 1:11:01 |
| 166 | Jake Stewart | NSN Cycling Team | 1:11:08 |
| 167 | Fernando Gaviria | Caja Rural-Seguros RGA | 1:11:14 |
| 168 | Milan Fretin | Cofidis | 1:11:54 |
| 169 | Tim Merlier | Soudal Quick-Step | 1:11:58 |
| 170 | Phil Bauhaus | Bahrain Victorious | 1:12:09 |
| 171 | Kamil Gradek | Bahrain Victorious | 1:12:09 |
| 172 | Pascal Ackermann | Team Jayco-AlUla | 1:12:56 |
| 173 | Piet Allegaert | Cofidis | 1:13:05 |
| 174 | Huub Artz | Lotto-Intermarché | 1:13:07 |
| 175 | Bert Van Lerberghe | Soudal Quick-Step | 1:13:49 |
| 176 | Liam Slock | Lotto-Intermarché | 1:15:02 |
| 177 | Davide Ballerini | XDS Astana Team | 1:15:16 |
| 178 | Olav Kooij | Decathlon CMA CGM Team | 1:15:56 |
| 179 | Cees Bol | Decathlon CMA CGM Team | 1:16:15 |
| 180 | Arvid de Kleijn | Tudor Pro Cycling Team | 1:19:08 |
| 181 | Marco Haller | Tudor Pro Cycling Team | 1:19:37 |
Stage 4 map & profile:

Stage 4 map

Stage 4 profile
Stage four photos by Fotoreporter Sirotti:

Marco Haller heads to the start wearing a chest cooler

Tadej Pogacar heads to the start.

Riders presentation ceremony before the stage start: Best young rider Isaac del Toro & GC leader Tadej Pogacar.

Team Caja Rural-Seguros RGA

French road champion Romain Grégoire signs an autograph.

Nico Denz cools off before the race.

Four-time Tour winner (2013, 2015, 2016, 2017) Chris Froome was at the start.

Stage four gets started in the city of Carcassonne.

Mads Pedersen wins stage four.

12min 59sec later Adam Yates leads in the GC group.

Stage winner Mads Pedersen

New GC leader Torstein Træen