
Monday, July 7: Stage 3, Valenciennes - Dunkerque, 175.5 km
Stage 3 map & profile | Stage 3 photos

Tim Merlier (Soudal Quick-Step) just beat Jonathan Milan (Lidl-Trek) for the stage win. Photo is by John Pierce/PhotoSport International UK, USA, Asia. ©
Bill & Carol McGann’s book The Story of the 2023 Tour de France, 2023: The Viking Again Conquers the Tour is available in both Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Rated ascent:
Weather at the finish city of Dunkerque at 210 PM, local time: 18C (63F), partly cloudy, with the wind from the north at 32 km/hr (19 mph). There is just a 1% chance of rain. It was raining at the start.
Here's the race organizer's weather report: Right now, it's raining heavily on the outskirts of Valenciennes. Fortunately, the rain will ease off as the stage progresses... at the same time as the north wind picks up. It will blow sideways to the peloton until Lilliers (km 108.5). Then, it will be a headwind. Temperatures will range between 15º and 20ºC.
The stage: Tour boss Christian Prudhomme writes: The riders and team managers all become weather experts on the morning of this type of stage. There will be no need for panic as the stage passes Isbergues. However, following the climb of the Côte de Cassel, the final 35 kilometres will be exposed to the wind. Will it blow? And in which direction? The stage has been designed to encourage the formation of echelons, or, failing that, for a bunch finish near the Marcel-Tribut Stadium.
The race: 182 riders started stage three at 1:52 PM.
Here's the race organizer's stage three summary:
Out of the equation in the first sprint of the Tour de France 2025, Tim Merlier (Soudal Quick-Step) took the revenge the was aiming for as he powered to victory in Dunkirk, on day 3. The Belgian sprinter managed to edge Jonathan Milan (Lidl-Trek) right on the line, after a fast and tight sprint. Phil Bauhaus (Bahrain Victorious) completes the podium of the day after Jasper Philipsen was forced to retire after a high speed crash in the intermediate sprint. His teammate Mathieu Van der Poel (Alpecin-Deceuninck) survived the day to retain the Maillot Jaune. This is Merlier’s second win in the Tour. Back in 2021, he had already won stage 3 on the day after MVDP took his first stage win. At the time, they were teammates.
All 182 riders who finished the stage in Boulogne-sur-Mer are present at the start in Valenciennes. The day's route discourages the usual breakaway contenders.
Alpecin-Deceuninck in control
Without much conviction, Jonas Rickaert (Alpecin-Deceuninck) moves to the front, accompanied by Matej Mohoric (Bahrain-Victorious), but they end their breakaway themselves after less than 10 kilometres in the lead. Nils Politt and Tim Wellens (UAE Emirates XRG) also spent a few kilometres at the front in an equally unconvincing breakaway, which ended in the same way at km 21.

Early in the stage Jonas Rickaert (Alpecin-Deceuninck) & Matej Mohoric (Bahrain Victorious) tried to get away, but they both soon gave up, Here Matej Mohoric is about to be caught by the pack.
From then on, Mathieu Van der Poel's teammates took the lead of the peloton and maintained a modest pace, with the support of Max Schachmann (Soudal-Quick Step).
Philipsen on the ground
Van der Poel gets to enjoy his day as the race travels through places associated with Paris-Roubaix - Orchies, Templeuve, Mons-en-Pévèle - and with his father, Adrie Van der Poel, who took the Maillot Jaune in Béthune (km 95.3) in 1984.
The intensity picks up at the exit of Béthune, as the peloton reach wind-exposed sections and get close to the intermediate sprint in Isbergues (km 95.3). As Jasper Philipsen (Alpecin-Deceuninck) steps on his pedals to defend his green jersey, a contact with Bryan Coquard (Cofidis) sends him to the ground at high speed. The Belgian star, winner of stage 1, is forced to retire.

Jasper Philipsen is cared for after his crash.
Merlier edges Milan
Tim Wellens (UAE Team Emirates-XRG) attacks ahead of Mont Cassel (summit at km 147.4) to chase the KOM point that would earn him the polka-dot jersey. Over the top, the gap to the bunch is up to 1’45’’. The Belgian national champion is then caught with 27-km to go.
As the peloton reaches Dunkirk, a fierce battle for the position unleashes against the headwind. Lidl-Trek take the reins for Jonathan Milan into the last kilometre. But Tim Merlier (Soudal Quick-Step) displays his pure speed to edge the Italian powerhouse and claim his second Tour win, four years after his maiden triumph in Pontivy.

Tim Merlier wins stage three. ASO photo
It was already stage 3, and it was on the day after Mathieu Van der Poel won stage 2 in Mûr-de-Bretagne. Merlier had also already won in Dunkirk, at the end of the 4 Jours de Dunkerque 2023.
Complete results:
175.5 kilometers raced at an average speed of 40.986 km/hr
| 1 | Tim Merlier | Soudal Quick-Step | 4hr 16min 55sec |
| 2 | Jonathan Milan | Lidl-Trek | s.t. |
| 3 | Phil Bauhaus | Bahrain Victorious | s.t. |
| 4 | Søren Wærenskjold | Uno-X Mobility | s.t. |
| 5 | Pavel Bittner | Team Picnic PostNL | s.t. |
| 6 | Biniam Girmay | Intermarché-Wanty | s.t. |
| 7 | Kaden Groves | Alpecin-Deceuninck | s.t. |
| 8 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 9 | Pascal Ackermann | Israel-Premier Tech | s.t. |
| 10 | Amaury Capiot | Arkea-B&B Hotels | s.t. |
| 11 | Alberto Dainese | Tudor Pro Cycling Team | s.t. |
| 12 | Tobias Lund Andresen | Team Picnic PostNL | s.t. |
| 13 | Bastien Tronchon | Decathlon AG2R La Mondiale | s.t. |
| 14 | Dylan Groenewegen | Team Jayco-AlUla | s.t. |
| 15 | Jake Stewart | Israel-Premier Tech | s.t. |
| 16 | Damien Touzé | Cofidis | s.t. |
| 17 | Yevgeniy Fedorov | XDS Astana Team | s.t. |
| 18 | Anthony Turgis | Team TotalEnergies | s.t. |
| 19 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 20 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 21 | Clément Russo | Groupama-FDJ | s.t. |
| 22 | Cyril Barthe | Groupama-FDJ | s.t. |
| 23 | Jonas Rickaert | Alpecin-Deceuninck | s.t. |
| 24 | Mathieu van der Poel | Alpecin-Deceuninck | s.t. |
| 25 | Sam Watson | INEOS Grenadiers | s.t. |
| 26 | Jonas Abrahamsen | Uno-X Mobility | s.t. |
| 27 | Clément Venturini | Arkea-B&B Hotels | s.t. |
| 28 | Matteo Trentin | Tudor Pro Cycling Team | s.t. |
| 29 | Simone Consonni | Lidl-Trek | s.t. |
| 30 | Stian Fredheim | Uno-X Mobility | s.t. |
| 31 | Fred Wright | Bahrain Victorious | s.t. |
| 32 | Fabian Lienhard | Tudor Pro Cycling Team | s.t. |
| 33 | Vincenzo Albanese | EF Education-EasyPost | s.t. |
| 34 | Frank van den Broek | Team Picnic PostNL | s.t. |
| 35 | Elmar Reinders | Team Jayco-AlUla | s.t. |
| 36 | Axel Laurance | INEOS Grenadiers | s.t. |
| 37 | Vito Braet | Intermarché-Wanty | s.t. |
| 38 | Edward Theuns | Lidl-Trek | s.t. |
| 39 | Jasper Stuyven | Lidl-Trek | s.t. |
| 40 | Jasper De Buyst | Lotto | s.t. |
| 41 | Bert Van Lerberghe | Soudal Quick-Step | s.t. |
| 42 | Hugo Page | Intermarché-Wanty | s.t. |
| 43 | Guillaume Boivin | Israel-Premier Tech | s.t. |
| 44 | Tobias Foss | INEOS Grenadiers | s.t. |
| 45 | Luka Mezgec | Team Jayco-AlUla | s.t. |
| 46 | Matis Louvel | Israel-Premier Tech | s.t. |
| 47 | Robert Stannard | Bahrain Victorious | s.t. |
| 48 | Toms Skujins | Lidl-Trek | s.t. |
| 49 | Lewis Askey | Groupama-FDJ | s.t. |
| 50 | Arnaud De Lie | Lotto | s.t. |
| 51 | Oliver Naesen | Decathlon AG2R La Mondiale | s.t. |
| 52 | Brent Van Moer | Lotto | s.t. |
| 53 | Sean Flynn | Team Picnic PostNL | s.t. |
| 54 | Kamil Gradek | Bahrain Victorious | s.t. |
| 55 | Mathis Le Berre | Arkea-B&B Hotels | s.t. |
| 56 | Benjamin Thomas | Cofidis | s.t. |
| 57 | Jarrad Drizners | Lotto | s.t. |
| 58 | Krists Neilands | Israel-Premier Tech | s.t. |
| 59 | Nils Politt | UAE Team Emirates-XRG | s.t. |
| 60 | Jonas Rutsch | Intermarché-Wanty | s.t. |
| 61 | Max Schachmann | Soudal Quick-Step | s.t. |
| 62 | Marius Mayrhofer | Tudor Pro Cycling Team | s.t. |
| 63 | Carlos Rodriguez | INEOS Grenadiers | s.t. |
| 64 | Joe Blackmore | Israel-Premier Tech | s.t. |
| 65 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 66 | Tiesj Benoot | Team Visma | Lease a Bike | s.t. |
| 67 | Emanuel Buchmann | Cofidis | s.t. |
| 68 | Cristian Rodriguez | Arkea-B&B Hotels | s.t. |
| 69 | Guillaume Martin-Guyonnet | Groupama-FDJ | s.t. |
| 70 | Jonas Vingegaard | Team Visma | Lease a Bike | s.t. |
| 71 | Tadej Pogacar | UAE Team Emirates-XRG | s.t. |
| 72 | Quentin Pacher | Groupama-FDJ | s.t. |
| 73 | Valentin Madouas | Groupama-FDJ | s.t. |
| 74 | Eduardo Sepulveda | Lotto | s.t. |
| 75 | Aurélien Paret-Peintre | Decathlon AG2R La Mondiale | s.t. |
| 76 | Romain Grégoire | Groupama-FDJ | s.t. |
| 77 | Lenny Martinez | Bahrain Victorious | s.t. |
| 78 | Warren Barguil | Team Picnic PostNL | s.t. |
| 79 | Neilson Powless | EF Education-EasyPost | s.t. |
| 80 | Roel van Sintmaartensdijk | Intermarché-Wanty | s.t. |
| 81 | Oscar Onley | Team Picnic PostNL | s.t. |
| 82 | Raúl García | Arkea-B&B Hotels | s.t. |
| 83 | Sébastien Grignard | Lotto | s.t. |
| 84 | Arnaud Démare | Arkea-B&B Hotels | s.t. |
| 85 | Louis Barré | Intermarché-Wanty | s.t. |
| 86 | Kévin Vauquelin | Arkea-B&B Hotels | s.t. |
| 87 | Steff Cras | Team TotalEnergies | s.t. |
| 88 | Matej Mohoric | Bahrain Victorious | s.t. |
| 89 | Julian Alaphilippe | Tudor Pro Cycling Team | s.t. |
| 90 | Edoardo Affini | Team Visma | Lease a Bike | s.t. |
| 91 | Jenno Berckmoes | Lotto | s.t. |
| 92 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | s.t. |
| 93 | Santiago Buitrago | Bahrain Victorious | s.t. |
| 94 | Jordan Jegat | Team TotalEnergies | s.t. |
| 95 | Ben Healy | EF Education-EasyPost | s.t. |
| 96 | Tim Wellens | UAE Team Emirates-XRG | s.t. |
| 97 | Thomas Gachignard | Team TotalEnergies | s.t. |
| 98 | Alexandre Delettre | Team TotalEnergies | s.t. |
| 99 | Marc Soler | UAE Team Emirates-XRG | s.t. |
| 100 | Nelson Oliveira | Movistar Team | s.t. |
| 101 | João Almeida | UAE Team Emirates-XRG | s.t. |
| 102 | Tobias Halland Johannessen | Uno-X Mobility | s.t. |
| 103 | Jack Haig | Bahrain Victorious | s.t. |
| 104 | Pavel Sivakov | UAE Team Emirates-XRG | s.t. |
| 105 | Wout van Aert | Team Visma | Lease a Bike | s.t. |
| 106 | Victor Campenaerts | Team Visma | Lease a Bike | s.t. |
| 107 | Markus Hoelgaard | Uno-X Mobility | s.t. |
| 108 | Simon Yates | Team Visma | Lease a Bike | s.t. |
| 109 | Sepp Kuss | Team Visma | Lease a Bike | s.t. |
| 110 | Michael Valgren | EF Education-EasyPost | s.t. |
| 111 | Mauro Schmid | Team Jayco-AlUla | s.t. |
| 112 | Dylan Teuns | Cofidis | s.t. |
| 113 | Clément Champoussin | XDS Astana Team | s.t. |
| 114 | Ewen Costiou | Arkea-B&B Hotels | s.t. |
| 115 | Pascal Eenkhoorn | Soudal Quick-Step | s.t. |
| 116 | Felix Gall | Decathlon AG2R La Mondiale | s.t. |
| 117 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 118 | Marco Haller | Tudor Pro Cycling Team | s.t. |
| 119 | Ion Izagirre | Cofidis | s.t. |
| 120 | Mattéo Vercher | Team TotalEnergies | s.t. |
| 121 | Alexey Lutsenko | Israel-Premier Tech | s.t. |
| 122 | Gregor Mühlberger | Movistar Team | s.t. |
| 123 | Adam Yates | UAE Team Emirates-XRG | s.t. |
| 124 | Mattias Skjelmose | Lidl-Trek | s.t. |
| 125 | Thibau Nys | Lidl-Trek | s.t. |
| 126 | Anders Halland Johannessen | Uno-X Mobility | s.t. |
| 127 | Andreas Leknessund | Uno-X Mobility | s.t. |
| 128 | Quinn Simmons | Lidl-Trek | s.t. |
| 129 | Edward Dunbar | Team Jayco-AlUla | s.t. |
| 130 | Ben O'Connor | Team Jayco-AlUla | s.t. |
| 131 | Enric Mas | Movistar Team | s.t. |
| 132 | Jhonatan Narvaez | UAE Team Emirates-XRG | s.t. |
| 133 | Iván García Cortina | Movistar Team | s.t. |
| 134 | Xandro Meurisse | Alpecin-Deceuninck | s.t. |
| 135 | Gianni Vermeersch | Alpecin-Deceuninck | s.t. |
| 136 | Harry Sweeny | EF Education-EasyPost | s.t. |
| 137 | Emiel Verstrynge | Alpecin-Deceuninck | s.t. |
| 138 | Matteo Jorgenson | Team Visma | Lease a Bike | s.t. |
| 139 | William Barta | Movistar Team | s.t. |
| 140 | Silvan Dillier | Alpecin-Deceuninck | s.t. |
| 141 | Alex Baudin | EF Education-EasyPost | s.t. |
| 142 | Valentin Paret-Peintre | Soudal Quick-Step | s.t. |
| 143 | Michael Woods | Israel-Premier Tech | s.t. |
| 144 | Magnus Cort | Uno-X Mobility | s.t. |
| 145 | Florian Lipowitz | Red Bull-BORA-hansgrohe | s.t. |
| 146 | Lennert Van Eetvelt | Lotto | s.t. |
| 147 | Marc Hirschi | Tudor Pro Cycling Team | s.t. |
| 148 | Lucas Plapp | Team Jayco-AlUla | s.t. |
| 149 | Primoz Roglic | Red Bull-BORA-hansgrohe | s.t. |
| 150 | Mick van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 151 | Iván Romeo | Movistar Team | s.t. |
| 152 | Einer Rubio | Movistar Team | s.t. |
| 153 | Pablo Castrillo | Movistar Team | s.t. |
| 154 | Mathieu Burgaudeau | Team TotalEnergies | s.t. |
| 155 | Ilan Van Wilder | Soudal Quick-Step | s.t. |
| 156 | Luke Durbridge | Team Jayco-AlUla | s.t. |
| 157 | Mattia Cattaneo | Soudal Quick-Step | s.t. |
| 158 | Remco Evenepoel | Soudal Quick-Step | s.t. |
| 159 | Davide Ballerini | XDS Astana Team | s.t. |
| 160 | Cees Bol | XDS Astana Team | s.t. |
| 161 | Mike Teunissen | XDS Astana Team | s.t. |
| 162 | Harold Tejada | XDS Astana Team | s.t. |
| 163 | Simone Velasco | XDS Astana Team | s.t. |
| 164 | Sergio Higuita | XDS Astana Team | s.t. |
| 165 | Callum Scotson | Decathlon AG2R La Mondiale | s.t. |
| 166 | Gianni Moscon | Red Bull-BORA-hansgrohe | s.t. |
| 167 | Alex Aranburu | Cofidis | s.t. |
| 168 | Clément Berthet | Decathlon AG2R La Mondiale | s.t. |
| 169 | Bruno Armirail | Decathlon AG2R La Mondiale | s.t. |
| 170 | Tim Naberman | Team Picnic PostNL | s.t. |
| 171 | Geraint Thomas | INEOS Grenadiers | s.t. |
| 172 | Thymen Arensman | INEOS Grenadiers | s.t. |
| 173 | Connor Swift | INEOS Grenadiers | s.t. |
| 174 | Alexis Renard | Cofidis | s.t. |
| 175 | Bryan Coquard | Cofidis | s.t. |
| 176 | Paul Penhoët | Groupama-FDJ | s.t. |
| 177 | Georg Zimmermann | Intermarché-Wanty | s.t. |
| 178 | Laurenz Rex | Intermarché-Wanty | s.t. |
| 179 | Laurence Pithie | Red Bull-BORA-hansgrohe | s.t. |
| 180 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 181 | Emilien Jeannière | Team TotalEnergies | s.t. |
GC after stage 3:
569.5 kilometers raced so far at an average speed of 55.055 km/hr
| 1 | Mathieu van der Poel | Alpecin-Deceuninck | 12hr 55min 37sec |
| 2 | Tadej Pogacar | UAE Team Emirates-XRG | @ 4sec |
| 3 | Jonas Vingegaard | Team Visma | Lease a Bike | 0:06 |
| 4 | Kévin Vauquelin | Arkea-B&B Hotels | 0:10 |
| 5 | Matteo Jorgenson | Team Visma | Lease a Bike | s.t. |
| 6 | Enric Mas | Movistar Team | s.t. |
| 7 | Joe Blackmore | Israel-Premier Tech | 0:41 |
| 8 | Tobias Halland Johannessen | Uno-X Mobility | s.t. |
| 9 | Ben O'Connor | Team Jayco-AlUla | s.t. |
| 10 | Emanuel Buchmann | Cofidis | 0:49 |
| 11 | Aurélien Paret-Peintre | Decathlon AG2R La Mondiale | s.t. |
| 12 | Neilson Powless | EF Education-EasyPost | s.t. |
| 13 | Oscar Onley | Team Picnic PostNL | s.t. |
| 14 | Guillaume Martin-Guyonnet | Groupama-FDJ | s.t. |
| 15 | João Almeida | UAE Team Emirates-XRG | s.t. |
| 16 | Santiago Buitrago | Bahrain Victorious | s.t. |
| 17 | Jenno Berckmoes | Lotto | s.t. |
| 18 | Mattias Skjelmose | Lidl-Trek | s.t. |
| 19 | Alexandre Delettre | Team TotalEnergies | s.t. |
| 20 | Felix Gall | Decathlon AG2R La Mondiale | s.t. |
| 21 | Remco Evenepoel | Soudal Quick-Step | s.t. |
| 22 | Florian Lipowitz | Red Bull-BORA-hansgrohe | s.t. |
| 23 | Primoz Roglic | Red Bull-BORA-hansgrohe | s.t. |
| 24 | Marc Hirschi | Tudor Pro Cycling Team | s.t. |
| 25 | Carlos Rodriguez | INEOS Grenadiers | 1:20 |
| 26 | Fred Wright | Bahrain Victorious | s.t. |
| 27 | Valentin Madouas | Groupama-FDJ | s.t. |
| 28 | Jordan Jegat | Team TotalEnergies | s.t. |
| 29 | Steff Cras | Team TotalEnergies | s.t. |
| 30 | Jack Haig | Bahrain Victorious | s.t. |
| 31 | Dylan Teuns | Cofidis | s.t. |
| 32 | Clément Berthet | Decathlon AG2R La Mondiale | s.t. |
| 33 | Bryan Coquard | Cofidis | s.t. |
| 34 | Sepp Kuss | Team Visma | Lease a Bike | s.t. |
| 35 | Geraint Thomas | INEOS Grenadiers | s.t. |
| 36 | Kaden Groves | Alpecin-Deceuninck | 1:39 |
| 37 | Sam Watson | INEOS Grenadiers | s.t. |
| 38 | Tiesj Benoot | Team Visma | Lease a Bike | s.t. |
| 39 | Harry Sweeny | EF Education-EasyPost | s.t. |
| 40 | Clément Venturini | Arkea-B&B Hotels | 1:47 |
| 41 | Ben Healy | EF Education-EasyPost | 2:18 |
| 42 | Jhonatan Narvaez | UAE Team Emirates-XRG | s.t. |
| 43 | Ilan Van Wilder | Soudal Quick-Step | s.t. |
| 44 | Tobias Lund Andresen | Team Picnic PostNL | 2:23 |
| 45 | Michael Valgren | EF Education-EasyPost | s.t. |
| 46 | Damien Touzé | Cofidis | 2:43 |
| 47 | Tim Wellens | UAE Team Emirates-XRG | 3:08 |
| 48 | Toms Skujins | Lidl-Trek | 3:10 |
| 49 | Bastien Tronchon | Decathlon AG2R La Mondiale | 3:22 |
| 50 | Alex Aranburu | Cofidis | s.t. |
| 51 | Anthony Turgis | Team TotalEnergies | 3:32 |
| 52 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 53 | Krists Neilands | Israel-Premier Tech | s.t. |
| 54 | Mike Teunissen | XDS Astana Team | s.t. |
| 55 | Paul Penhoët | Groupama-FDJ | s.t. |
| 56 | Xandro Meurisse | Alpecin-Deceuninck | 3:34 |
| 57 | Robert Stannard | Bahrain Victorious | 4:00 |
| 58 | Thomas Gachignard | Team TotalEnergies | 4:11 |
| 59 | Wout van Aert | Team Visma | Lease a Bike | 4:18 |
| 60 | Warren Barguil | Team Picnic PostNL | 4:38 |
| 61 | Callum Scotson | Decathlon AG2R La Mondiale | 4:43 |
| 62 | Pavel Bittner | Team Picnic PostNL | 4:56 |
| 63 | Clément Russo | Groupama-FDJ | 5:13 |
| 64 | Matteo Trentin | Tudor Pro Cycling Team | s.t. |
| 65 | Cyril Barthe | Groupama-FDJ | s.t. |
| 66 | Jasper Stuyven | Lidl-Trek | s.t. |
| 67 | Quentin Pacher | Groupama-FDJ | 5:28 |
| 68 | Romain Grégoire | Groupama-FDJ | s.t. |
| 69 | Alexey Lutsenko | Israel-Premier Tech | s.t. |
| 70 | Biniam Girmay | Intermarché-Wanty | 5:29 |
| 71 | Jonathan Milan | Lidl-Trek | 5:37 |
| 72 | Matis Louvel | Israel-Premier Tech | 5:52 |
| 73 | Oliver Naesen | Decathlon AG2R La Mondiale | s.t. |
| 74 | Tobias Foss | INEOS Grenadiers | s.t. |
| 75 | Markus Hoelgaard | Uno-X Mobility | s.t. |
| 76 | Gianni Vermeersch | Alpecin-Deceuninck | s.t. |
| 77 | Pascal Eenkhoorn | Soudal Quick-Step | s.t. |
| 78 | Jonas Abrahamsen | Uno-X Mobility | 5:58 |
| 79 | Cristian Rodriguez | Arkea-B&B Hotels | 5:59 |
| 80 | Harold Tejada | XDS Astana Team | s.t. |
| 81 | Mauro Schmid | Team Jayco-AlUla | 6:08 |
| 82 | Hugo Page | Intermarché-Wanty | 6:14 |
| 83 | Edward Dunbar | Team Jayco-AlUla | 6:38 |
| 84 | Julian Alaphilippe | Tudor Pro Cycling Team | 6:41 |
| 85 | Simone Velasco | XDS Astana Team | s.t. |
| 86 | Luka Mezgec | Team Jayco-AlUla | 6:49 |
| 87 | Alex Baudin | EF Education-EasyPost | 6:51 |
| 88 | Mathieu Burgaudeau | Team TotalEnergies | 7:12 |
| 89 | Axel Laurance | INEOS Grenadiers | 7:26 |
| 90 | Ion Izagirre | Cofidis | 7:27 |
| 91 | Gianni Moscon | Red Bull-BORA-hansgrohe | s.t. |
| 92 | Vincenzo Albanese | EF Education-EasyPost | 7:28 |
| 93 | Connor Swift | INEOS Grenadiers | s.t. |
| 94 | Mattia Cattaneo | Soudal Quick-Step | 7:33 |
| 95 | Victor Campenaerts | Team Visma | Lease a Bike | 7:34 |
| 96 | Marc Soler | UAE Team Emirates-XRG | 7:39 |
| 97 | Niklas Märkl | Team Picnic PostNL | 7:59 |
| 98 | Marius Mayrhofer | Tudor Pro Cycling Team | s.t. |
| 99 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 100 | Simon Yates | Team Visma | Lease a Bike | 8:10 |
| 101 | Frank van den Broek | Team Picnic PostNL | 8:11 |
| 102 | Jonas Rickaert | Alpecin-Deceuninck | 8:12 |
| 103 | Georg Zimmermann | Intermarché-Wanty | 8:21 |
| 104 | Laurence Pithie | Red Bull-BORA-hansgrohe | 8:22 |
| 105 | Gregor Mühlberger | Movistar Team | 8:26 |
| 106 | Amaury Capiot | Arkea-B&B Hotels | 8:38 |
| 107 | Jasper De Buyst | Lotto | s.t. |
| 108 | Nelson Oliveira | Movistar Team | s.t. |
| 109 | Lennert Van Eetvelt | Lotto | s.t. |
| 110 | Alexis Renard | Cofidis | s.t. |
| 111 | Jake Stewart | Israel-Premier Tech | 8:50 |
| 112 | Raúl García | Arkea-B&B Hotels | s.t. |
| 113 | Ewen Costiou | Arkea-B&B Hotels | s.t. |
| 114 | Elmar Reinders | Team Jayco-AlUla | 9:05 |
| 115 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | s.t. |
| 116 | Matej Mohoric | Bahrain Victorious | s.t. |
| 117 | Vito Braet | Intermarché-Wanty | 9:25 |
| 118 | Sean Flynn | Team Picnic PostNL | 9:37 |
| 119 | Mick van Dijke | Red Bull-BORA-hansgrohe | 10:13 |
| 120 | Mathis Le Berre | Arkea-B&B Hotels | 10:31 |
| 121 | Benjamin Thomas | Cofidis | s.t. |
| 122 | Adam Yates | UAE Team Emirates-XRG | 10:31 |
| 123 | Thymen Arensman | INEOS Grenadiers | s.t. |
| 124 | Emilien Jeannière | Team TotalEnergies | s.t. |
| 125 | Valentin Paret-Peintre | Soudal Quick-Step | 10:53 |
| 126 | Søren Wærenskjold | Uno-X Mobility | 11:03 |
| 127 | Quinn Simmons | Lidl-Trek | s.t. |
| 128 | Pascal Ackermann | Israel-Premier Tech | 11:07 |
| 129 | Stian Fredheim | Uno-X Mobility | s.t. |
| 130 | Iván García Cortina | Movistar Team | s.t. |
| 131 | Marco Haller | Tudor Pro Cycling Team | s.t. |
| 132 | Edoardo Affini | Team Visma | Lease a Bike | 11:32 |
| 133 | Tim Merlier | Soudal Quick-Step | 11:36 |
| 134 | Phil Bauhaus | Bahrain Victorious | 11:42 |
| 135 | Fabian Lienhard | Tudor Pro Cycling Team | 11:43 |
| 136 | Arnaud Démare | Arkea-B&B Hotels | s.t. |
| 137 | Brent Van Moer | Lotto | s.t. |
| 138 | Louis Barré | Intermarché-Wanty | 11:44 |
| 139 | Michael Woods | Israel-Premier Tech | s.t. |
| 140 | Danny van Poppel | Red Bull-BORA-hansgrohe | 11:46 |
| 141 | Alberto Dainese | Tudor Pro Cycling Team | s.t. |
| 142 | Dylan Groenewegen | Team Jayco-AlUla | s.t. |
| 143 | Arnaud De Lie | Lotto | s.t. |
| 144 | Guillaume Boivin | Israel-Premier Tech | s.t. |
| 145 | Jarrad Drizners | Lotto | s.t. |
| 146 | Davide Ballerini | XDS Astana Team | s.t. |
| 147 | Magnus Cort | Uno-X Mobility | s.t. |
| 148 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 149 | Simone Consonni | Lidl-Trek | 12:05 |
| 150 | Bert Van Lerberghe | Soudal Quick-Step | 12:13 |
| 151 | Lewis Askey | Groupama-FDJ | 12:16 |
| 152 | Edward Theuns | Lidl-Trek | 12:33 |
| 153 | Anders Halland Johannessen | Uno-X Mobility | 12:50 |
| 154 | Nils Politt | UAE Team Emirates-XRG | 13:17 |
| 155 | Jonas Rutsch | Intermarché-Wanty | s.t. |
| 156 | Eduardo Sepulveda | Lotto | s.t. |
| 157 | Sébastien Grignard | Lotto | s.t. |
| 158 | Pavel Sivakov | UAE Team Emirates-XRG | s.t. |
| 159 | Bruno Armirail | Decathlon AG2R La Mondiale | s.t. |
| 160 | Emiel Verstrynge | Alpecin-Deceuninck | s.t. |
| 161 | Laurenz Rex | Intermarché-Wanty | s.t. |
| 162 | Sergio Higuita | XDS Astana Team | s.t. |
| 163 | Tim Naberman | Team Picnic PostNL | s.t. |
| 164 | Luke Durbridge | Team Jayco-AlUla | 13:20 |
| 165 | Kamil Gradek | Bahrain Victorious | 13:33 |
| 166 | Lenny Martinez | Bahrain Victorious | 14:24 |
| 167 | Max Schachmann | Soudal Quick-Step | 14:30 |
| 168 | Roel van Sintmaartensdijk | Intermarché-Wanty | s.t. |
| 169 | Thibau Nys | Lidl-Trek | s.t. |
| 170 | Lucas Plapp | Team Jayco-AlUla | s.t. |
| 171 | Mattéo Vercher | Team TotalEnergies | 15:29 |
| 172 | Iván Romeo | Movistar Team | 15:43 |
| 173 | Michael Storer | Tudor Pro Cycling Team | 15:50 |
| 174 | Einer Rubio | Movistar Team | 16:22 |
| 175 | Clément Champoussin | XDS Astana Team | 16:25 |
| 176 | Andreas Leknessund | Uno-X Mobility | s.t. |
| 177 | Pablo Castrillo | Movistar Team | s.t. |
| 178 | Silvan Dillier | Alpecin-Deceuninck | 17:35 |
| 179 | Yevgeniy Fedorov | XDS Astana Team | 17:38 |
| 180 | William Barta | Movistar Team | s.t. |
| 181 | Cees Bol | XDS Astana Team | 17:57 |
Stage 3 map & profile:

Stage 3 map

Stage 3 profile, with a single 4th category climb.
Stage three photos by Fotoreporter Sirotti:

Mathieu van der Poel (GC leader) and Jasper Philipsen (points leader) introduced before the stage start.

Best young rider Kévin Vauquelin

Tim Merlier & Remco Evenepoel

Jonas Vingegaard in rain gear before the stage start.

Thor Hushovd (2010 World Champion, TDF points classification winner in 2005 & 2009 & lots more) was there. I believe his is currently the general manager of Team UNO-X Mobility.

Groupama-FDJ riders waiting for the race to start.

Tim Merlier narrowly beats Jonathan Milan for the stage win.

Tim Merlier celebrates his stage win.

Tim Merlier just after winning the stage.

2010 Tour winner Andy Schleck was there.

Stage winner Tim Merlier

Jonathan Milan is the new points classification leader

Mathieu van der Poel will start stage four in yellow.