
4 Days of Dunkirk podium history | 2025 edition | Start list
Stage 1 | Stage 2 | Stage 3 | Stage 4 | Stage 5

2026 4 Days of Dunkirk map.
Sunday, March 24: 5th & Final Stage, Saint-Omer - Dunkerque, 181.3 km

Jordi Meeus wins stage five. Photo: Xavier Pereyron
Bill & Carol McGann's book The Story of the Tour de France, 2020: The Tour During Covid-19, Better Late Than Never is available in both Kindle eBook and Audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Dunkerque at 2:30 PM, local time: 26C (78F), sunny, with the wind from the north-northeast at 13 km/hr (8 mph). No rain is forecast.
The race: Here's the report from stage winner Jordi Mees' Team Red Bull-BORA-hansgrohe:
Double victory caps off stage race triumph: Meeus and van Poppel win in Dunkerque, Pithie defends the pink jersey
The 4 Jours de Dunkerque ended for Red Bull - BORA - hansgrohe just as they had begun: with a stage win. Jordi Meeus won the final stage ahead of Danny van Poppel in a bunch sprint. Laurence Pithie also retained the pink jersey, which he had taken on after his victory on the first stage and had not relinquished since.
With Laurence, the most consistent and versatile professional in the peloton, has won the race. After securing victory in the uphill sprint on the opening stage, he also won the bunch sprint on the flat behind a four-man breakaway group. On the third day, the New Zealander demonstrated his cobbled classics prowess by finishing second on the Paris-Roubaix cobbles in Arenberg. He spent the long finale of the fourth stage in the wind, as his rivals offered little support in the chase for the breakaway.

The fifth & final stage gets its neutralized start. Photo: VRZ Photographie
On the final day, Laurence then showed that he can also cope with setbacks. Neither a crash early in the race nor a mechanical just before the finish could deprive him of the well-deserved reward for a week in northern France, which brought the 23-year-old his first stage race victory as a professional. Alongside the pink jersey for the overall winner, Laurence also took the jerseys for best young rider and best points scorer.
Jordi then capped off the week for the team with another success. In Dunkirk, he celebrated his second win of the season with absolute dominance in a bunch sprint after 181 kilometres. Danny, acting as his lead-out man, also managed to finish in second place.
"I'm absolutely delighted to have achieved this today. Danny really set the stage for my victory, though. I'm pleased that he managed to finish second himself, and that we were able to give the team a perfect end to the week." — Jordi Meeus
"It’s my first overall victory, and I’m absolutely happy. It was a tough week, but the team did a really good job. Right from the first stage, we knew it was going to be a difficult week to control because of the strong teams. And yes, we had a lot of pressure and a lot of bad luck, but we managed to keep our heads up." — Laurence Pithie
"There was a major crash at the start of the stage, in which Laurence was also involved. Fortunately, he was able to carry on with only minor injuries and after a bike change. Then, of course, our aim was not only to secure the overall classification, but also to win the stage with Jordi.
When Laurence then suffered a mechanical four kilometres from the finish, there was a brief moment of panic. But fortunately, Callum Thornley reacted very quickly and gave Laurence his bike. And in the sprint, Jordi and Danny were still able to take the win. It’s a fantastic result to end the week on." — Cesare Benedetti, Sports Director
Complete results:
181.3 kilometers raced at an average speed of 45.000 km/hr
| 1 | Jordi Meeus | Red Bull-BORA-hansgrohe | 4hr 1min 44sec |
| 2 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 3 | Gianluca Pollefliet | Decathlon CMA CGM Team | s.t. |
| 4 | Hugo Hofstetter | NSN Cycling Team | s.t. |
| 5 | Tobias Müller | Unibet Rose Rockets | s.t. |
| 6 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 7 | Erik Resell | Uno-X Mobility | s.t. |
| 8 | Joppe Heremans | Van Rysel-Roubaix | s.t. |
| 9 | Joren Bloem | Unibet Rose Rockets | s.t. |
| 10 | Stan Dewulf | Decathlon CMA CGM Team | s.t. |
| 11 | Matteo Milan | Groupama-FDJ United | s.t. |
| 12 | Alexander Konijn | Nice Métropole-Côte d’Azur | s.t. |
| 13 | Natnael Tesfazion | Movistar Team | s.t. |
| 14 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | s.t. |
| 15 | Carlos Canal | Movistar Team | s.t. |
| 16 | Théo Delacroix | St Michel-Preference Home-Auber 93 | s.t. |
| 17 | Robbe Dhondt | Team Picnic PostNL | s.t. |
| 18 | Alan Jousseaume | Team TotalEnergies | s.t. |
| 19 | Thibaud Gruel | Groupama-FDJ United | s.t. |
| 20 | Killian Théot | Van Rysel-Roubaix | s.t. |
| 21 | Titouan Fontaine | Groupama-FDJ United | s.t. |
| 22 | Clément Russo | Groupama-FDJ United | s.t. |
| 23 | Noah Hobbs | EF Education-EasyPost | s.t. |
| 24 | Jon Barrenetxea | Movistar Team | s.t. |
| 25 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 26 | Filip Maciejuk | Movistar Team | s.t. |
| 27 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 28 | Artem Shmidt | Netcompany INEOS Cycling Team | s.t. |
| 29 | Gonzalo Serrano | Movistar Team | s.t. |
| 30 | Matys Grisel | Lotto-Intermarché | s.t. |
| 31 | Oscar Chamberlain | Decathlon CMA CGM Team | s.t. |
| 32 | Wessel Mouris | Unibet Rose Rockets | s.t. |
| 33 | Fabien Doubey | Team TotalEnergies | s.t. |
| 34 | Liam Slock | Lotto-Intermarché | s.t. |
| 35 | Maxime Vezie | CIC Pro Cycling Academy | s.t. |
| 36 | Kim Heiduk | Netcompany INEOS Cycling Team | s.t. |
| 37 | Léandre Lozouet | CIC Pro Cycling Academy | s.t. |
| 38 | William Blume Levy | Uno-X Mobility | s.t. |
| 39 | Henrik Pedersen | Uno-X Mobility | s.t. |
| 40 | Jonas Hem Hvideberg | Uno-X Mobility | s.t. |
| 41 | Alexys Brunel | Team TotalEnergies | s.t. |
| 42 | Baptiste Gillet | Nice Métropole-Côte d’Azur | s.t. |
| 43 | Valentin Madouas | Groupama-FDJ United | s.t. |
| 44 | Petr Kelemen | Tudor Pro Cycling Team | s.t. |
| 45 | Laurence Pithie | Red Bull-BORA-hansgrohe | s.t. |
| 46 | Maxime Jarnet | Van Rysel-Roubaix | s.t. |
| 47 | Kévin Avoine | Van Rysel-Roubaix | s.t. |
| 48 | Jens Verbrugghe | NSN Cycling Team | s.t. |
| 49 | Abram Stockman | Unibet Rose Rockets | s.t. |
| 50 | Matthew Fox | Lotto-Intermarché | s.t. |
| 51 | Óscar Rodríguez | Netcompany INEOS Cycling Team | s.t. |
| 52 | Aivaras Mikutis | Tudor Pro Cycling Team | s.t. |
| 53 | Victor Langellotti | Netcompany INEOS Cycling Team | s.t. |
| 54 | Jhonatan Guatibonza | Movistar Team | s.t. |
| 55 | Luca Van Boven | Lotto-Intermarché | s.t. |
| 56 | Jacob Eriksson | Tudor Pro Cycling Team | s.t. |
| 57 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | s.t. |
| 58 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 59 | Christiaan van Rees | Team Picnic PostNL | s.t. |
| 60 | Rayan Boulahoite | Team TotalEnergies | s.t. |
| 61 | Lucas Hamilton | Netcompany INEOS Cycling Team | s.t. |
| 62 | Arnaud Tendon | Van Rysel-Roubaix | s.t. |
| 63 | Karsten Feldmann | Unibet Rose Rockets | s.t. |
| 64 | Storm Ingebrigtsen | Uno-X Mobility | s.t. |
| 65 | Jan Maas | Cofidis | @ 32sec |
| 66 | Kiaan Watts | NSN Cycling Team | s.t. |
| 67 | Nicola Marcerou | Team TotalEnergies | @ 0sec |
| 68 | Oliver Mätik | Tudor Pro Cycling Team | @ 0sec |
| 69 | Sam Maisonobe | Cofidis | @ 0sec |
| 70 | Louis Chaleil | Decathlon CMA CGM Team | 0:39 |
| 71 | Alex Kirsch | Cofidis | @ 0sec |
| 72 | James Knox | Team Picnic PostNL | 0:54 |
| 73 | Benjamin Thomas | Cofidis | @ 0sec |
| 74 | Lorrenzo Manzin | Team TotalEnergies | 0:54 |
| 75 | Sebastian Putz | Red Bull-BORA-hansgrohe | 1:04 |
| 76 | Maël Guégan | CIC Pro Cycling Academy | 1:26 |
| 77 | Victor Papon | Nice Métropole-Côte d’Azur | 1:36 |
| 78 | Daniel Årnes | Van Rysel-Roubaix | s.t. |
| 79 | Axel Bouquet | St Michel-Preference Home-Auber 93 | @ 0sec |
| 80 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | 1:36 |
| 81 | Callum Thornley | Red Bull-BORA-hansgrohe | s.t. |
| 82 | Dillon Corkery | Team Picnic PostNL | s.t. |
| 83 | Luke Lamperti | EF Education-EasyPost | @ 0sec |
| 84 | Moritz Kretschy | NSN Cycling Team | 1:54 |
| 85 | Lewis Askey | NSN Cycling Team | @ 0sec |
| 86 | Shunsuke Imamura | Lotto-Intermarché | 2:06 |
| 87 | Clement Izquierdo | Cofidis | @ 0sec |
| 88 | Nils Eekhoff | Team Picnic PostNL | 2:06 |
| 89 | Thomas Champion | St Michel-Preference Home-Auber 93 | 2:11 |
| 90 | Valentin Ferron | Cofidis | s.t. |
| 91 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | 2:23 |
| 92 | Bryan Coquard | Cofidis | @ 0sec |
| 93 | Kasper Haugland | Decathlon CMA CGM Team | 4:07 |
| 94 | Roland Thalmann | Tudor Pro Cycling Team | s.t. |
| 95 | Emil Herzog | Red Bull-BORA-hansgrohe | 4:26 |
| 96 | Joris Chaussinand | CIC Pro Cycling Academy | s.t. |
| 97 | Similien Hamon | CIC Pro Cycling Academy | 5:30 |
| 98 | Linus Larsson | EF Education-EasyPost | 6:09 |
| 99 | Matthias Schwarzbacher | EF Education-EasyPost | s.t. |
| 100 | Arvid de Kleijn | Tudor Pro Cycling Team | @ 0sec |
Final GC after stage 5:
870.9 kilometers raced at an average speed of 44.437 km/hr
| 1 | Laurence Pithie | Red Bull-BORA-hansgrohe | 19hr 35min 55sec |
| 2 | Natnael Tesfazion | Movistar Team | @ 7sec |
| 3 | Rasmus Tiller | Uno-X Mobility | 0:11 |
| 4 | Stan Dewulf | Decathlon CMA CGM Team | 0:14 |
| 5 | Liam Slock | Lotto-Intermarché | s.t. |
| 6 | Kim Heiduk | Netcompany INEOS Cycling Team | 0:20 |
| 7 | Lewis Askey | NSN Cycling Team | 0:29 |
| 8 | Sam Maisonobe | Cofidis | 0:30 |
| 9 | Artem Shmidt | Netcompany INEOS Cycling Team | 0:36 |
| 10 | Thibaud Gruel | Groupama-FDJ United | 0:37 |
| 11 | Carlos Canal | Movistar Team | s.t. |
| 12 | Clement Izquierdo | Cofidis | s.t. |
| 13 | Robbe Dhondt | Team Picnic PostNL | 0:40 |
| 14 | Benjamin Thomas | Cofidis | 0:43 |
| 15 | Marijn van den Berg | EF Education-EasyPost | 0:44 |
| 16 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 17 | Alexys Brunel | Team TotalEnergies | 0:46 |
| 18 | Jon Barrenetxea | Movistar Team | 0:55 |
| 19 | Rayan Boulahoite | Team TotalEnergies | 0:59 |
| 20 | Wessel Mouris | Unibet Rose Rockets | 1:03 |
| 21 | Maxime Vezie | CIC Pro Cycling Academy | 1:07 |
| 22 | Joren Bloem | Unibet Rose Rockets | 2:43 |
| 23 | Luca Van Boven | Lotto-Intermarché | 3:34 |
| 24 | Luke Lamperti | EF Education-EasyPost | 4:00 |
| 25 | Killian Théot | Van Rysel-Roubaix | 4:16 |
| 26 | Valentin Madouas | Groupama-FDJ United | 4:23 |
| 27 | Matthew Fox | Lotto-Intermarché | 4:27 |
| 28 | Fabien Doubey | Team TotalEnergies | 4:33 |
| 29 | Jonas Hem Hvideberg | Uno-X Mobility | 4:39 |
| 30 | Théo Delacroix | St Michel-Preference Home-Auber 93 | 4:41 |
| 31 | William Blume Levy | Uno-X Mobility | 5:03 |
| 32 | Gonzalo Serrano | Movistar Team | 5:24 |
| 33 | Henrik Pedersen | Uno-X Mobility | 5:33 |
| 34 | Tobias Müller | Unibet Rose Rockets | 5:38 |
| 35 | Maxime Jarnet | Van Rysel-Roubaix | 5:42 |
| 36 | Jacob Eriksson | Tudor Pro Cycling Team | 6:41 |
| 37 | Aivaras Mikutis | Tudor Pro Cycling Team | 7:24 |
| 38 | Matys Grisel | Lotto-Intermarché | 7:31 |
| 39 | Filip Maciejuk | Movistar Team | 8:32 |
| 40 | Erik Resell | Uno-X Mobility | 8:33 |
| 41 | Abram Stockman | Unibet Rose Rockets | 8:34 |
| 42 | Oscar Chamberlain | Decathlon CMA CGM Team | 8:43 |
| 43 | Axel Bouquet | St Michel-Preference Home-Auber 93 | 10:11 |
| 44 | Daniel Årnes | Van Rysel-Roubaix | 10:35 |
| 45 | Niklas Märkl | Team Picnic PostNL | 11:44 |
| 46 | Thomas Champion | St Michel-Preference Home-Auber 93 | 12:54 |
| 47 | James Knox | Team Picnic PostNL | 13:18 |
| 48 | Kévin Avoine | Van Rysel-Roubaix | 14:52 |
| 49 | Joppe Heremans | Van Rysel-Roubaix | 15:08 |
| 50 | Bryan Coquard | Cofidis | 15:21 |
| 51 | Lucas Hamilton | Netcompany INEOS Cycling Team | 15:41 |
| 52 | Léandre Lozouet | CIC Pro Cycling Academy | 15:53 |
| 53 | Jan Maas | Cofidis | 16:09 |
| 54 | Baptiste Gillet | Nice Métropole-Côte d’Azur | 16:16 |
| 55 | Nicola Marcerou | Team TotalEnergies | 17:00 |
| 56 | Alan Jousseaume | Team TotalEnergies | 17:02 |
| 57 | Callum Thornley | Red Bull-BORA-hansgrohe | 18:36 |
| 58 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | 19:15 |
| 59 | Hugo Hofstetter | NSN Cycling Team | 19:53 |
| 60 | Moritz Kretschy | NSN Cycling Team | 20:37 |
| 61 | Storm Ingebrigtsen | Uno-X Mobility | 21:24 |
| 62 | Clément Russo | Groupama-FDJ United | 21:43 |
| 63 | Petr Kelemen | Tudor Pro Cycling Team | 21:45 |
| 64 | Gianluca Pollefliet | Decathlon CMA CGM Team | 22:28 |
| 65 | Arvid de Kleijn | Tudor Pro Cycling Team | 22:35 |
| 66 | Jens Verbrugghe | NSN Cycling Team | 22:36 |
| 67 | Maël Guégan | CIC Pro Cycling Academy | 23:30 |
| 68 | Danny van Poppel | Red Bull-BORA-hansgrohe | 24:36 |
| 69 | Arnaud Tendon | Van Rysel-Roubaix | 24:53 |
| 70 | Titouan Fontaine | Groupama-FDJ United | 25:27 |
| 71 | Alex Kirsch | Cofidis | 25:45 |
| 72 | Lorrenzo Manzin | Team TotalEnergies | 26:14 |
| 73 | Jordi Meeus | Red Bull-BORA-hansgrohe | 26:20 |
| 74 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | 27:46 |
| 75 | Victor Langellotti | Netcompany INEOS Cycling Team | 28:18 |
| 76 | Valentin Ferron | Cofidis | s.t. |
| 77 | Matteo Milan | Groupama-FDJ United | 28:36 |
| 78 | Noah Hobbs | EF Education-EasyPost | 29:25 |
| 79 | Victor Papon | Nice Métropole-Côte d’Azur | 29:45 |
| 80 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | 31:01 |
| 81 | Oliver Mätik | Tudor Pro Cycling Team | 31:16 |
| 82 | Roland Thalmann | Tudor Pro Cycling Team | 32:27 |
| 83 | Similien Hamon | CIC Pro Cycling Academy | 33:06 |
| 84 | Kiaan Watts | NSN Cycling Team | 33:29 |
| 85 | Shunsuke Imamura | Lotto-Intermarché | 34:22 |
| 86 | Alexander Konijn | Nice Métropole-Côte d’Azur | 34:36 |
| 87 | Óscar Rodríguez | Netcompany INEOS Cycling Team | 35:11 |
| 88 | Dillon Corkery | Team Picnic PostNL | 35:13 |
| 89 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | 35:59 |
| 90 | Sebastian Putz | Red Bull-BORA-hansgrohe | 36:12 |
| 91 | Matthias Schwarzbacher | EF Education-EasyPost | 37:10 |
| 92 | Christiaan van Rees | Team Picnic PostNL | 37:28 |
| 93 | Nils Eekhoff | Team Picnic PostNL | 38:56 |
| 94 | Jhonatan Guatibonza | Movistar Team | 40:46 |
| 95 | Karsten Feldmann | Unibet Rose Rockets | 40:49 |
| 96 | Louis Chaleil | Decathlon CMA CGM Team | 41:15 |
| 97 | Emil Herzog | Red Bull-BORA-hansgrohe | 41:56 |
| 98 | Joris Chaussinand | CIC Pro Cycling Academy | 42:46 |
| 99 | Kasper Haugland | Decathlon CMA CGM Team | 43:45 |
| 100 | Linus Larsson | EF Education-EasyPost | 47:35 |
Stage 5 map & profile:

Stage 5 map

Stage 5 profile
Saturday, May 23: Stage 4, Bergues - Cassel, 167.2 km

Natnael Tesfazion gets a solo win in Cassel. Photo: Xavier Pereyron
Bill & Carol McGann's book The Story of the Tour de France, Vol 1: 1903 - 1975 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 Cassel at 2:40 PM, local time: 29C (85F), sunny, with the wind from the west-southwest at 16 km/hr (10 mph). No rain is forecast.
The race: Here's the report from third-place Kim Heiduk's Team Netcompany INEOS.
Kim Heiduk impressed with a battling ride to third place on the penultimate stage at the 4 Jours de Dunkerque.
The German was full of riding on the run into Cassel, and a key part of a pair of breakaway groups. The final move would stay clear to the finish, with Heiduk riding three riders off his wheel on the initial drag up to the line.

Stage four gets started. Photo: VRZ Photographie
Yet in the final metres there was no stopping the winning acceleration of Natnael Tesfatsion (Movistar), who claimed victory and moved up to second overall.
Heiduk crossed the line seven seconds later, in an effort which would move him up to sixth place on GC with one stage to go.
Teammate Artem Shmidt now sits ninth overall as the peloton split apart on the steep final ramps.
Complete results:
167.2 kilometers raced at an average speed of 41.745 km/hr
| 1 | Natnael Tesfazion | Movistar Team | 4hr 0min 19sec |
| 2 | Stan Dewulf | Decathlon CMA CGM Team | @ 3sec |
| 3 | Kim Heiduk | Netcompany INEOS Cycling Team | 0:07 |
| 4 | Sam Maisonobe | Cofidis | 0:13 |
| 5 | Liam Slock | Lotto-Intermarché | 0:16 |
| 6 | Lewis Askey | NSN Cycling Team | s.t. |
| 7 | Laurence Pithie | Red Bull-BORA-hansgrohe | 0:18 |
| 8 | Carlos Canal | Movistar Team | 0:20 |
| 9 | Thibaud Gruel | Groupama-FDJ United | s.t. |
| 10 | Luke Lamperti | EF Education-EasyPost | s.t. |
| 11 | Clement Izquierdo | Cofidis | s.t. |
| 12 | Robbe Dhondt | Team Picnic PostNL | 0:23 |
| 13 | Axel Bouquet | St Michel-Preference Home-Auber 93 | 0:27 |
| 14 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 15 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 16 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 17 | Artem Shmidt | Netcompany INEOS Cycling Team | 0:38 |
| 18 | Alexys Brunel | Team TotalEnergies | s.t. |
| 19 | Jon Barrenetxea | Movistar Team | s.t. |
| 20 | Jacob Eriksson | Tudor Pro Cycling Team | 0:42 |
| 21 | Rayan Boulahoite | Team TotalEnergies | s.t. |
| 22 | Benjamin Thomas | Cofidis | 0:45 |
| 23 | Joren Bloem | Unibet Rose Rockets | 0:47 |
| 24 | Maxime Vezie | CIC Pro Cycling Academy | 0:50 |
| 25 | Wessel Mouris | Unibet Rose Rockets | 0:52 |
| 26 | Alan Jousseaume | Team TotalEnergies | 1:32 |
| 27 | Valentin Madouas | Groupama-FDJ United | 3:17 |
| 28 | Luca Van Boven | Lotto-Intermarché | s.t. |
| 29 | Killian Théot | Van Rysel-Roubaix | 3:59 |
| 30 | Filip Maciejuk | Movistar Team | 4:03 |
| 31 | Matis Louvel | NSN Cycling Team | 4:07 |
| 32 | Matthew Fox | Lotto-Intermarché | 4:10 |
| 33 | William Blume Levy | Uno-X Mobility | s.t. |
| 34 | Moritz Kretschy | NSN Cycling Team | s.t. |
| 35 | Abram Stockman | Unibet Rose Rockets | 4:15 |
| 36 | Jonas Hem Hvideberg | Uno-X Mobility | 4:22 |
| 37 | Fabien Doubey | Team TotalEnergies | 4:25 |
| 38 | Victor Vaneeckhoutte | Lotto-Intermarché | 4:31 |
| 39 | Théo Delacroix | St Michel-Preference Home-Auber 93 | 4:33 |
| 40 | Nicola Marcerou | Team TotalEnergies | 4:44 |
| 41 | Maxime Jarnet | Van Rysel-Roubaix | 4:58 |
| 42 | James Knox | Team Picnic PostNL | 5:02 |
| 43 | Victor Papon | Nice Métropole-Côte d’Azur | 5:11 |
| 44 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | s.t. |
| 45 | Daniel Årnes | Van Rysel-Roubaix | 5:16 |
| 46 | Henrik Pedersen | Uno-X Mobility | s.t. |
| 47 | Tobias Müller | Unibet Rose Rockets | 5:21 |
| 48 | Gonzalo Serrano | Movistar Team | 5:26 |
| 49 | Oscar Chamberlain | Decathlon CMA CGM Team | 5:32 |
| 50 | Simon Guglielmi | St Michel-Preference Home-Auber 93 | 6:26 |
| 51 | Kévin Avoine | Van Rysel-Roubaix | 7:00 |
| 52 | Maël Guégan | CIC Pro Cycling Academy | 7:06 |
| 53 | Aivaras Mikutis | Tudor Pro Cycling Team | 7:07 |
| 54 | Erik Resell | Uno-X Mobility | s.t. |
| 55 | Thomas Champion | St Michel-Preference Home-Auber 93 | s.t. |
| 56 | Matys Grisel | Lotto-Intermarché | 7:14 |
| 57 | Morne Van Niekerk | St Michel-Preference Home-Auber 93 | 7:18 |
| 58 | Callum Thornley | Red Bull-BORA-hansgrohe | 10:06 |
| 59 | Jan Maas | Cofidis | 11:20 |
| 60 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | s.t. |
| 61 | Kiaan Watts | NSN Cycling Team | 11:22 |
| 62 | Sebastian Putz | Red Bull-BORA-hansgrohe | s.t. |
| 63 | Roland Thalmann | Tudor Pro Cycling Team | s.t. |
| 64 | Clément Russo | Groupama-FDJ United | 11:26 |
| 65 | Niklas Märkl | Team Picnic PostNL | 11:27 |
| 66 | Lucas Hamilton | Netcompany INEOS Cycling Team | 11:51 |
| 67 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | 11:52 |
| 68 | Matthias Schwarzbacher | EF Education-EasyPost | 12:21 |
| 69 | Alex Kirsch | Cofidis | s.t. |
| 70 | Baptiste Gillet | Nice Métropole-Côte d’Azur | 13:11 |
| 71 | Matteo Milan | Groupama-FDJ United | 13:24 |
| 72 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | 13:27 |
| 73 | Storm Ingebrigtsen | Uno-X Mobility | 13:49 |
| 74 | Arnaud Tendon | Van Rysel-Roubaix | 15:02 |
| 75 | Petr Kelemen | Tudor Pro Cycling Team | s.t. |
| 76 | Óscar Rodríguez | Netcompany INEOS Cycling Team | s.t. |
| 77 | Alexander Konijn | Nice Métropole-Côte d’Azur | s.t. |
| 78 | Arvid de Kleijn | Tudor Pro Cycling Team | s.t. |
| 79 | Shunsuke Imamura | Lotto-Intermarché | s.t. |
| 80 | Oliver Mätik | Tudor Pro Cycling Team | 15:09 |
| 81 | Victor Langellotti | Netcompany INEOS Cycling Team | 15:10 |
| 82 | Jens Verbrugghe | NSN Cycling Team | s.t. |
| 83 | Hugo Hofstetter | NSN Cycling Team | s.t. |
| 84 | Titouan Fontaine | Groupama-FDJ United | s.t. |
| 85 | Bryan Coquard | Cofidis | s.t. |
| 86 | Léandre Lozouet | CIC Pro Cycling Academy | s.t. |
| 87 | Lorrenzo Manzin | Team TotalEnergies | s.t. |
| 88 | Joris Chaussinand | CIC Pro Cycling Academy | s.t. |
| 89 | Joppe Heremans | Van Rysel-Roubaix | s.t. |
| 90 | Louis Chaleil | Decathlon CMA CGM Team | 17:40 |
| 91 | Valentin Ferron | Cofidis | s.t. |
| 92 | Linus Larsson | EF Education-EasyPost | s.t. |
| 93 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 94 | Noah Hobbs | EF Education-EasyPost | s.t. |
| 95 | Similien Hamon | CIC Pro Cycling Academy | s.t. |
| 96 | Dillon Corkery | Team Picnic PostNL | s.t. |
| 97 | Gianluca Pollefliet | Decathlon CMA CGM Team | s.t. |
| 98 | Kasper Haugland | Decathlon CMA CGM Team | s.t. |
| 99 | Karsten Feldmann | Unibet Rose Rockets | s.t. |
| 100 | Jhonatan Guatibonza | Movistar Team | 17:46 |
| 101 | Jordi Meeus | Red Bull-BORA-hansgrohe | 17:49 |
| 102 | Emil Herzog | Red Bull-BORA-hansgrohe | 18:21 |
| 103 | Jason Tesson | Team TotalEnergies | 18:43 |
| 104 | Nils Eekhoff | Team Picnic PostNL | 22:14 |
| 105 | Christiaan van Rees | Team Picnic PostNL | 22:16 |
GC after stage 4:
689.6 kilometers raced so far at an average speed of 44.291 km/hr
| 1 | Laurence Pithie | Red Bull-BORA-hansgrohe | 15hr 34min 11sec |
| 2 | Natnael Tesfazion | Movistar Team | @ 7sec |
| 3 | Rasmus Tiller | Uno-X Mobility | 0:11 |
| 4 | Liam Slock | Lotto-Intermarché | 0:14 |
| 5 | Stan Dewulf | Decathlon CMA CGM Team | s.t. |
| 6 | Kim Heiduk | Netcompany INEOS Cycling Team | 0:20 |
| 7 | Lewis Askey | NSN Cycling Team | 0:29 |
| 8 | Sam Maisonobe | Cofidis | 0:30 |
| 9 | Artem Shmidt | Netcompany INEOS Cycling Team | 0:36 |
| 10 | Thibaud Gruel | Groupama-FDJ United | 0:37 |
| 11 | Clement Izquierdo | Cofidis | s.t. |
| 12 | Carlos Canal | Movistar Team | s.t. |
| 13 | Robbe Dhondt | Team Picnic PostNL | 0:40 |
| 14 | Benjamin Thomas | Cofidis | 0:43 |
| 15 | Marijn van den Berg | EF Education-EasyPost | 0:44 |
| 16 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 17 | Alexys Brunel | Team TotalEnergies | 0:46 |
| 18 | Jon Barrenetxea | Movistar Team | 0:55 |
| 19 | Rayan Boulahoite | Team TotalEnergies | 0:59 |
| 20 | Wessel Mouris | Unibet Rose Rockets | 1:03 |
| 21 | Maxime Vezie | CIC Pro Cycling Academy | 1:07 |
| 22 | Joren Bloem | Unibet Rose Rockets | 2:43 |
| 23 | Luca Van Boven | Lotto-Intermarché | 3:34 |
| 24 | Luke Lamperti | EF Education-EasyPost | 4:00 |
| 25 | Killian Théot | Van Rysel-Roubaix | 4:16 |
| 26 | Valentin Madouas | Groupama-FDJ United | 4:23 |
| 27 | Matthew Fox | Lotto-Intermarché | 4:27 |
| 28 | Fabien Doubey | Team TotalEnergies | 4:33 |
| 29 | Jonas Hem Hvideberg | Uno-X Mobility | 4:39 |
| 30 | Théo Delacroix | St Michel-Preference Home-Auber 93 | 4:50 |
| 31 | William Blume Levy | Uno-X Mobility | 5:03 |
| 32 | Gonzalo Serrano | Movistar Team | 5:24 |
| 33 | Matis Louvel | NSN Cycling Team | 5:33 |
| 34 | Henrik Pedersen | Uno-X Mobility | s.t. |
| 35 | Tobias Müller | Unibet Rose Rockets | 5:38 |
| 36 | Maxime Jarnet | Van Rysel-Roubaix | 5:42 |
| 37 | Jacob Eriksson | Tudor Pro Cycling Team | 6:41 |
| 38 | Aivaras Mikutis | Tudor Pro Cycling Team | 7:24 |
| 39 | Matys Grisel | Lotto-Intermarché | 7:31 |
| 40 | Filip Maciejuk | Movistar Team | 8:32 |
| 41 | Erik Resell | Uno-X Mobility | 8:33 |
| 42 | Abram Stockman | Unibet Rose Rockets | 8:34 |
| 43 | Oscar Chamberlain | Decathlon CMA CGM Team | 8:43 |
| 44 | Daniel Årnes | Van Rysel-Roubaix | 8:59 |
| 45 | Morne Van Niekerk | St Michel-Preference Home-Auber 93 | 9:58 |
| 46 | Axel Bouquet | St Michel-Preference Home-Auber 93 | 10:11 |
| 47 | Thomas Champion | St Michel-Preference Home-Auber 93 | 10:43 |
| 48 | Niklas Märkl | Team Picnic PostNL | 11:44 |
| 49 | James Knox | Team Picnic PostNL | 12:24 |
| 50 | Kévin Avoine | Van Rysel-Roubaix | 14:52 |
| 51 | Joppe Heremans | Van Rysel-Roubaix | 15:08 |
| 52 | Bryan Coquard | Cofidis | 15:21 |
| 53 | Jan Maas | Cofidis | 15:37 |
| 54 | Lucas Hamilton | Netcompany INEOS Cycling Team | 15:41 |
| 55 | Léandre Lozouet | CIC Pro Cycling Academy | 15:53 |
| 56 | Baptiste Gillet | Nice Métropole-Côte d’Azur | 16:16 |
| 57 | Callum Thornley | Red Bull-BORA-hansgrohe | 17:00 |
| 58 | Nicola Marcerou | Team TotalEnergies | s.t. |
| 59 | Alan Jousseaume | Team TotalEnergies | 17:02 |
| 60 | Moritz Kretschy | NSN Cycling Team | 18:43 |
| 61 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | 19:15 |
| 62 | Hugo Hofstetter | NSN Cycling Team | 19:53 |
| 63 | Storm Ingebrigtsen | Uno-X Mobility | 21:24 |
| 64 | Clément Russo | Groupama-FDJ United | 21:43 |
| 65 | Petr Kelemen | Tudor Pro Cycling Team | 21:45 |
| 66 | Maël Guégan | CIC Pro Cycling Academy | 22:04 |
| 67 | Simon Guglielmi | St Michel-Preference Home-Auber 93 | 22:26 |
| 68 | Gianluca Pollefliet | Decathlon CMA CGM Team | 22:32 |
| 69 | Arvid de Kleijn | Tudor Pro Cycling Team | 22:35 |
| 70 | Jens Verbrugghe | NSN Cycling Team | 22:36 |
| 71 | Danny van Poppel | Red Bull-BORA-hansgrohe | 24:42 |
| 72 | Arnaud Tendon | Van Rysel-Roubaix | 24:53 |
| 73 | Lorrenzo Manzin | Team TotalEnergies | 25:20 |
| 74 | Jason Tesson | Team TotalEnergies | 25:22 |
| 75 | Victor Vaneeckhoutte | Lotto-Intermarché | 25:23 |
| 76 | Titouan Fontaine | Groupama-FDJ United | 25:27 |
| 77 | Alex Kirsch | Cofidis | 25:45 |
| 78 | Valentin Ferron | Cofidis | 26:07 |
| 79 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | 26:10 |
| 80 | Jordi Meeus | Red Bull-BORA-hansgrohe | 26:30 |
| 81 | Similien Hamon | CIC Pro Cycling Academy | 27:41 |
| 82 | Victor Papon | Nice Métropole-Côte d’Azur | 28:09 |
| 83 | Victor Langellotti | Netcompany INEOS Cycling Team | 28:18 |
| 84 | Roland Thalmann | Tudor Pro Cycling Team | 28:20 |
| 85 | Matteo Milan | Groupama-FDJ United | 28:36 |
| 86 | Noah Hobbs | EF Education-EasyPost | 29:25 |
| 87 | Matthias Schwarzbacher | EF Education-EasyPost | 31:01 |
| 88 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | s.t. |
| 89 | Oliver Mätik | Tudor Pro Cycling Team | 31:16 |
| 90 | Shunsuke Imamura | Lotto-Intermarché | s.t. |
| 91 | Kiaan Watts | NSN Cycling Team | 32:57 |
| 92 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | 33:36 |
| 93 | Dillon Corkery | Team Picnic PostNL | 33:37 |
| 94 | Alexander Konijn | Nice Métropole-Côte d’Azur | 34:36 |
| 95 | Sebastian Putz | Red Bull-BORA-hansgrohe | 35:08 |
| 96 | Óscar Rodríguez | Netcompany INEOS Cycling Team | 35:11 |
| 97 | Nils Eekhoff | Team Picnic PostNL | 36:50 |
| 98 | Christiaan van Rees | Team Picnic PostNL | 37:28 |
| 99 | Emil Herzog | Red Bull-BORA-hansgrohe | 37:30 |
| 100 | Joris Chaussinand | CIC Pro Cycling Academy | 38:20 |
| 101 | Kasper Haugland | Decathlon CMA CGM Team | 39:38 |
| 102 | Louis Chaleil | Decathlon CMA CGM Team | 40:40 |
| 103 | Jhonatan Guatibonza | Movistar Team | 40:46 |
| 104 | Karsten Feldmann | Unibet Rose Rockets | 40:49 |
| 105 | Linus Larsson | EF Education-EasyPost | 41:26 |
Stage 4 map & profile:

Stage 4 map

Stage 4 profile
Friday, May 22: Stage 3, La Sentinelle - Wallers Arenberg, 157.7 km

Rasmus Tiller takes a solo win in Wallers Arenberg. Photo: Xavier Pereyron
Les Woodland's book Sticky Buns Across America: Back-roads biking from sea to shining sea 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 town of Wallers at 2:40 PM, local time: 27C (81F), sunny, with the wind from the south at 8 km/hr (5 mph). No rain is forecast.
The race:
Complete results:
157.7 kilometers raced at an average speed of 45.995 km/hr
| 1 | Rasmus Tiller | Uno-X Mobility | 3hr 25min 43sec |
| 2 | Laurence Pithie | Red Bull-BORA-hansgrohe | @ 4sec |
| 3 | Jason Tesson | Team TotalEnergies | s.t. |
| 4 | Artem Shmidt | Netcompany INEOS Cycling Team | s.t. |
| 5 | Joppe Heremans | Van Rysel-Roubaix | s.t. |
| 6 | Liam Slock | Lotto-Intermarché | s.t. |
| 7 | Petr Kelemen | Tudor Pro Cycling Team | s.t. |
| 8 | Oscar Chamberlain | Decathlon CMA CGM Team | s.t. |
| 9 | Gonzalo Serrano | Movistar Team | s.t. |
| 10 | Benjamin Thomas | Cofidis | s.t. |
| 11 | Robbe Dhondt | Team Picnic PostNL | 23 |
| 12 | Matthew Fox | Lotto-Intermarché | s.t. |
| 13 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 14 | Clement Izquierdo | Cofidis | s.t. |
| 15 | Matys Grisel | Lotto-Intermarché | s.t. |
| 16 | Kim Heiduk | Netcompany INEOS Cycling Team | s.t. |
| 17 | Thibaud Gruel | Groupama-FDJ United | s.t. |
| 18 | Stan Dewulf | Decathlon CMA CGM Team | s.t. |
| 19 | Maxime Jarnet | Van Rysel-Roubaix | s.t. |
| 20 | Arvid de Kleijn | Tudor Pro Cycling Team | s.t. |
| 21 | Carlos Canal | Movistar Team | s.t. |
| 22 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 23 | Théo Delacroix | St Michel-Preference Home-Auber 93 | s.t. |
| 24 | William Blume Levy | Uno-X Mobility | s.t. |
| 25 | Lewis Askey | NSN Cycling Team | s.t. |
| 26 | Erik Resell | Uno-X Mobility | s.t. |
| 27 | Gianluca Pollefliet | Decathlon CMA CGM Team | s.t. |
| 28 | Jon Barrenetxea | Movistar Team | s.t. |
| 29 | Bryan Coquard | Cofidis | s.t. |
| 30 | Jonas Hem Hvideberg | Uno-X Mobility | s.t. |
| 31 | Wessel Mouris | Unibet Rose Rockets | s.t. |
| 32 | Natnael Tesfazion | Movistar Team | s.t. |
| 33 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 34 | Sam Maisonobe | Cofidis | s.t. |
| 35 | Maxime Vezie | CIC Pro Cycling Academy | s.t. |
| 36 | Alexys Brunel | Team TotalEnergies | s.t. |
| 37 | Luca Van Boven | Lotto-Intermarché | s.t. |
| 38 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 39 | Rayan Boulahoite | Team TotalEnergies | s.t. |
| 40 | Henrik Pedersen | Uno-X Mobility | s.t. |
| 41 | Baptiste Gillet | Nice Métropole-Côte d’Azur | s.t. |
| 42 | Fabien Doubey | Team TotalEnergies | s.t. |
| 43 | Bastien Tronchon | Groupama-FDJ United | s.t. |
| 44 | Killian Théot | Van Rysel-Roubaix | s.t. |
| 45 | Aivaras Mikutis | Tudor Pro Cycling Team | s.t. |
| 46 | Arnaud Tendon | Van Rysel-Roubaix | s.t. |
| 47 | Jan Maas | Cofidis | 0:49 |
| 48 | Léandre Lozouet | CIC Pro Cycling Academy | s.t. |
| 49 | Matis Louvel | NSN Cycling Team | s.t. |
| 50 | Valentin Madouas | Groupama-FDJ United | 1:12 |
| 51 | Abram Stockman | Unibet Rose Rockets | 1:31 |
| 52 | Joren Bloem | Unibet Rose Rockets | s.t. |
| 53 | Kévin Avoine | Van Rysel-Roubaix | s.t. |
| 54 | Thomas Champion | St Michel-Preference Home-Auber 93 | 1:52 |
| 55 | Morne Van Niekerk | St Michel-Preference Home-Auber 93 | s.t. |
| 56 | Arne Marit | Red Bull-BORA-hansgrohe | 2:02 |
| 57 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 58 | James Knox | Team Picnic PostNL | 2:06 |
| 59 | Jacob Eriksson | Tudor Pro Cycling Team | s.t. |
| 60 | Daniel Årnes | Van Rysel-Roubaix | s.t. |
| 61 | Lucas Hamilton | Netcompany INEOS Cycling Team | s.t. |
| 62 | Luke Lamperti | EF Education-EasyPost | 2:37 |
| 63 | Tobias Müller | Unibet Rose Rockets | @ 23sec |
| 64 | Filip Maciejuk | Movistar Team | @ 4sec |
| 65 | Lorrenzo Manzin | Team TotalEnergies | 3:31 |
| 66 | Callum Thornley | Red Bull-BORA-hansgrohe | 3:35 |
| 67 | Hugo Hofstetter | NSN Cycling Team | 3:40 |
| 68 | Similien Hamon | CIC Pro Cycling Academy | 4:16 |
| 69 | Jens Verbrugghe | NSN Cycling Team | 4:57 |
| 70 | Storm Ingebrigtsen | Uno-X Mobility | 6:42 |
| 71 | Nils Eekhoff | Team Picnic PostNL | 7:20 |
| 72 | Noah Hobbs | EF Education-EasyPost | s.t. |
| 73 | Christiaan van Rees | Team Picnic PostNL | 8:33 |
| 74 | Dillon Corkery | Team Picnic PostNL | s.t. |
| 75 | Antoine Raugel | Van Rysel-Roubaix | s.t. |
| 76 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | s.t. |
| 77 | Clément Russo | Groupama-FDJ United | s.t. |
| 78 | Matteo Milan | Groupama-FDJ United | s.t. |
| 79 | Valentin Ferron | Cofidis | s.t. |
| 80 | Matthias Schwarzbacher | EF Education-EasyPost | s.t. |
| 81 | Titouan Fontaine | Groupama-FDJ United | s.t. |
| 82 | Nicola Marcerou | Team TotalEnergies | 9:28 |
| 83 | Shunsuke Imamura | Lotto-Intermarché | s.t. |
| 84 | Axel Bouquet | St Michel-Preference Home-Auber 93 | s.t. |
| 85 | Roland Thalmann | Tudor Pro Cycling Team | s.t. |
| 86 | Oliver Mätik | Tudor Pro Cycling Team | s.t. |
| 87 | Karsten Feldmann | Unibet Rose Rockets | 12:25 |
| 88 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | s.t. |
| 89 | Victor Vaneeckhoutte | Lotto-Intermarché | s.t. |
| 90 | Joris Chaussinand | CIC Pro Cycling Academy | 12:45 |
| 91 | Victor Langellotti | Netcompany INEOS Cycling Team | 13:14 |
| 92 | Simon Guglielmi | St Michel-Preference Home-Auber 93 | 13:30 |
| 93 | Alex Kirsch | Cofidis | s.t. |
| 94 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | s.t. |
| 95 | Moritz Kretschy | NSN Cycling Team | s.t. |
| 96 | Jhonatan Guatibonza | Movistar Team | s.t. |
| 97 | Óscar Rodríguez | Netcompany INEOS Cycling Team | s.t. |
| 98 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | s.t. |
| 99 | Maël Guégan | CIC Pro Cycling Academy | s.t. |
| 100 | Sebastian Putz | Red Bull-BORA-hansgrohe | s.t. |
| 101 | Alan Jousseaume | Team TotalEnergies | s.t. |
| 102 | Louis Chaleil | Decathlon CMA CGM Team | s.t. |
| 103 | Linus Larsson | EF Education-EasyPost | s.t. |
| 104 | Kasper Haugland | Decathlon CMA CGM Team | s.t. |
| 105 | Stian Fredheim | Uno-X Mobility | s.t. |
| 106 | Emil Herzog | Red Bull-BORA-hansgrohe | s.t. |
| 107 | Kiaan Watts | NSN Cycling Team | 14:56 |
| 108 | Victor Papon | Nice Métropole-Côte d’Azur | 16:50 |
| 109 | Alexander Konijn | Nice Métropole-Côte d’Azur | 19:40 |
GC after stage 3:
522.4 kilometers raced so far at an average speed of 45.193 km/hr
| 1 | Laurence Pithie | Red Bull-BORA-hansgrohe | 11hr 33min 34sec |
| 2 | Rasmus Tiller | Uno-X Mobility | @ 2sec |
| 3 | Joppe Heremans | Van Rysel-Roubaix | 0:16 |
| 4 | Liam Slock | Lotto-Intermarché | s.t. |
| 5 | Gonzalo Serrano | Movistar Team | s.t. |
| 6 | Artem Shmidt | Netcompany INEOS Cycling Team | s.t. |
| 7 | Benjamin Thomas | Cofidis | s.t. |
| 8 | Alexys Brunel | Team TotalEnergies | 0:26 |
| 9 | Bryan Coquard | Cofidis | 0:29 |
| 10 | Lewis Askey | NSN Cycling Team | 0:31 |
| 11 | Kim Heiduk | Netcompany INEOS Cycling Team | 0:35 |
| 12 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 13 | Thibaud Gruel | Groupama-FDJ United | s.t. |
| 14 | Matys Grisel | Lotto-Intermarché | s.t. |
| 15 | Clement Izquierdo | Cofidis | s.t. |
| 16 | Stan Dewulf | Decathlon CMA CGM Team | s.t. |
| 17 | Maxime Vezie | CIC Pro Cycling Academy | s.t. |
| 18 | Robbe Dhondt | Team Picnic PostNL | s.t. |
| 19 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 20 | Carlos Canal | Movistar Team | s.t. |
| 21 | Rayan Boulahoite | Team TotalEnergies | s.t. |
| 22 | Théo Delacroix | St Michel-Preference Home-Auber 93 | s.t. |
| 23 | Natnael Tesfazion | Movistar Team | s.t. |
| 24 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 25 | Sam Maisonobe | Cofidis | s.t. |
| 26 | Wessel Mouris | Unibet Rose Rockets | s.t. |
| 27 | Aivaras Mikutis | Tudor Pro Cycling Team | s.t. |
| 28 | Jonas Hem Hvideberg Jonas | Uno-X Mobility | s.t. |
| 29 | Henrik Pedersen | Uno-X Mobility | s.t. |
| 30 | Killian Théot | Van Rysel-Roubaix | s.t. |
| 31 | Jon Barrenetxea | Movistar Team | s.t. |
| 32 | Fabien Doubey | Team TotalEnergies | s.t. |
| 33 | Bastien Tronchon | Groupama-FDJ United | s.t. |
| 34 | Luca Van Boven | Lotto-Intermarché | s.t. |
| 35 | Matthew Fox | Lotto-Intermarché | s.t. |
| 36 | Tobias Müller | Unibet Rose Rockets | s.t. |
| 37 | Léandre Lozouet | CIC Pro Cycling Academy | 1:01 |
| 38 | Maxime Jarnet | Van Rysel-Roubaix | 1:02 |
| 39 | William Blume Levy | Uno-X Mobility | 1:11 |
| 40 | Valentin Madouas | Groupama-FDJ United | 1:24 |
| 41 | Matis Louvel | NSN Cycling Team | 1:44 |
| 42 | Erik Resell | Uno-X Mobility | s.t. |
| 43 | Joren Bloem | Unibet Rose Rockets | 2:14 |
| 44 | Morne Van Niekerk | St Michel-Preference Home-Auber 93 | 2:58 |
| 45 | Baptiste Gillet | Nice Métropole-Côte d’Azur | 3:24 |
| 46 | Oscar Chamberlain | Decathlon CMA CGM Team | 3:29 |
| 47 | Thomas Champion | St Michel-Preference Home-Auber 93 | 3:54 |
| 48 | Luke Lamperti | EF Education-EasyPost | 3:58 |
| 49 | Daniel Årnes | Van Rysel-Roubaix | 4:01 |
| 50 | Lucas Hamilton | Netcompany INEOS Cycling Team | 4:08 |
| 51 | Jan Maas | Cofidis | 4:35 |
| 52 | Abram Stockman | Unibet Rose Rockets | 4:37 |
| 53 | Filip Maciejuk | Movistar Team | 4:47 |
| 54 | Hugo Hofstetter | NSN Cycling Team | 5:01 |
| 55 | Gianluca Pollefliet | Decathlon CMA CGM Team | 5:10 |
| 56 | Jacob Eriksson | Tudor Pro Cycling Team | 6:17 |
| 57 | Jason Tesson | Team TotalEnergies | 6:57 |
| 58 | Petr Kelemen | Tudor Pro Cycling Team | 7:01 |
| 59 | Callum Thornley | Red Bull-BORA-hansgrohe | 7:12 |
| 60 | Danny van Poppel | Red Bull-BORA-hansgrohe | 7:20 |
| 61 | James Knox | Team Picnic PostNL | 7:40 |
| 62 | Jens Verbrugghe | NSN Cycling Team | 7:44 |
| 63 | Arvid de Kleijn | Tudor Pro Cycling Team | 7:51 |
| 64 | Storm Ingebrigtsen | Uno-X Mobility | 7:53 |
| 65 | Kévin Avoine | Van Rysel-Roubaix | 8:10 |
| 66 | Valentin Ferron | Cofidis | 8:45 |
| 67 | Arne Marit | Red Bull-BORA-hansgrohe | 8:59 |
| 68 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 69 | Axel Bouquet | St Michel-Preference Home-Auber 93 | 10:02 |
| 70 | Arnaud Tendon | Van Rysel-Roubaix | 10:09 |
| 71 | Similien Hamon | CIC Pro Cycling Academy | 10:19 |
| 72 | Lorrenzo Manzin | Team TotalEnergies | 10:28 |
| 73 | Antoine Raugel | Van Rysel-Roubaix | 10:35 |
| 74 | Clément Russo | Groupama-FDJ United | s.t. |
| 75 | Titouan Fontaine | Groupama-FDJ United | s.t. |
| 76 | Noah Hobbs | EF Education-EasyPost | 12:03 |
| 77 | Nicola Marcerou | Team TotalEnergies | 12:34 |
| 78 | Victor Langellotti | Netcompany INEOS Cycling Team | 13:26 |
| 79 | Alex Kirsch | Cofidis | 13:42 |
| 80 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | 14:22 |
| 81 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | 14:36 |
| 82 | Moritz Kretschy | NSN Cycling Team | 14:51 |
| 83 | Nils Eekhoff | Team Picnic PostNL | 14:54 |
| 84 | Maël Guégan | CIC Pro Cycling Academy | 15:16 |
| 85 | Matteo Milan | Groupama-FDJ United | 15:30 |
| 86 | Christiaan van Rees | Team Picnic PostNL | s.t. |
| 87 | Alan Jousseaume | Team TotalEnergies | 15:48 |
| 88 | Dillon Corkery | Team Picnic PostNL | 16:15 |
| 89 | Simon Guglielmi | St Michel-Preference Home-Auber 93 | 16:18 |
| 90 | Oliver Mätik | Tudor Pro Cycling Team | 16:25 |
| 91 | Roland Thalmann | Tudor Pro Cycling Team | 17:16 |
| 92 | Shunsuke Imamura | Lotto-Intermarché | 17:32 |
| 93 | Matthias Schwarzbacher | EF Education-EasyPost | 18:58 |
| 94 | Emil Herzog | Red Bull-BORA-hansgrohe | 19:27 |
| 95 | Alexander Konijn | Nice Métropole-Côte d’Azur | 19:52 |
| 96 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | 19:59 |
| 97 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | 20:27 |
| 98 | Stian Fredheim | Uno-X Mobility | s.t. |
| 99 | Óscar Rodríguez | Netcompany INEOS Cycling Team | s.t. |
| 100 | Victor Vaneeckhoutte | Lotto-Intermarché | 21:10 |
| 101 | Kiaan Watts | NSN Cycling Team | 21:53 |
| 102 | Kasper Haugland | Decathlon CMA CGM Team | 22:16 |
| 103 | Victor Papon | Nice Métropole-Côte d’Azur | 23:18 |
| 104 | Jhonatan Guatibonza | Movistar Team | s.t. |
| 105 | Louis Chaleil | Decathlon CMA CGM Team | s.t. |
| 106 | Karsten Feldmann | Unibet Rose Rockets | 23:27 |
| 107 | Joris Chaussinand | CIC Pro Cycling Academy | 23:28 |
| 108 | Sebastian Putz | Red Bull-BORA-hansgrohe | 24:04 |
| 109 | Linus Larsson | EF Education-EasyPost | s.t. |
Stage 3 map & profile:

Stage 3 map

Stage 3 profile
Thursday, May 21: Stage 2, Glisy - Liévin, 187.4 km

Victor Papon wins stage two. Photo: Xavier Pereyron/@Inc_cyclisme
Les Woodland's book Tour de France: The Inside Story - Making the World's Greatest Bicycle Race is available in print, Kindle eBook and audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Liévin at 2:40 PM, local time: 22C (72F), partly cloudy, with the wind from thesouth at 8 km/hr (5 mph). No rain is forecast.
The race: Here's the report from winner Victor Papon's Team Nice Métropole-Côte d’Azur.
Victory! Team Nice Métropole-Côte d'Azur adds its name to the winners' list of this 70th edition of the 4 Days of Dunkirk. On Thursday, May 21, 2026, covering the 185 kilometers connecting Glisy to Liévin, Victor Papon won the 2nd stage in a sprint finish, delivering the Nice-based team its first victory of the season against the top squads in the professional peloton.
As early as the 13th kilometer, Team Nice Métropole Côte d'Azur placed two riders in the day's breakaway: Victor Papon and Jaakko Hänninen, who were joined by Maël Guegan (CIC Pro Cycling Academy), Kévin Avoine, and Daniel Arnes (Van Rysel Roubaix). It was an aggressive, determined group that quickly opened up a gap, building a lead of up to 4 minutes over the peloton with about one hundred kilometers remaining.
The sprinters' teams (EF Education, Red Bull-BORA, Unibet, etc.) then organized themselves to reel in the group. Victor Papon held out until the very end, securing the first victory of the 2026 season for the Nice squad in an impressive final sprint in Liévin.
Complete results:
187.4 kilometers raced at an average speed of 44.338 km/hr
| 1 | Victor Papon | Nice Métropole-Côte d’Azur | 4hr 13min 36sec |
| 2 | Maël Guégan | CIC Pro Cycling Academy | s.t. |
| 3 | Kévin Avoine | Van Rysel-Roubaix | s.t. |
| 4 | Daniel Årnes | Van Rysel-Roubaix | s.t. |
| 5 | Laurence Pithie | Red Bull-BORA-hansgrohe | @ 7sec |
| 6 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 7 | Stian Fredheim | Uno-X Mobility | s.t. |
| 8 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 9 | Tobias Müller | Unibet Rose Rockets | s.t. |
| 10 | Lewis Askey | NSN Cycling Team | s.t. |
| 11 | Hugo Hofstetter | NSN Cycling Team | s.t. |
| 12 | Jason Tesson | Team TotalEnergies | s.t. |
| 13 | Kim Heiduk | Netcompany INEOS Cycling Team | s.t. |
| 14 | Matteo Milan | Groupama-FDJ United | s.t. |
| 15 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 16 | Liam Slock | Lotto-Intermarché | s.t. |
| 17 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 18 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | s.t. |
| 19 | Joppe Heremans | Van Rysel-Roubaix | s.t. |
| 20 | Gianluca Pollefliet | Decathlon CMA CGM Team | s.t. |
| 21 | Luke Lamperti | EF Education-EasyPost | s.t. |
| 22 | Jhonatan Guatibonza | Movistar Team | s.t. |
| 23 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 24 | Arne Marit | Red Bull-BORA-hansgrohe | s.t. |
| 25 | Jon Barrenetxea | Movistar Team | s.t. |
| 26 | Luca Van Boven | Lotto-Intermarché | s.t. |
| 27 | Maxime Vezie | CIC Pro Cycling Academy | s.t. |
| 28 | Gonzalo Serrano | Movistar Team | s.t. |
| 29 | Natnael Tesfazion | Movistar Team | s.t. |
| 30 | Théo Delacroix | St Michel-Preference Home-Auber 93 | s.t. |
| 31 | Joren Bloem | Unibet Rose Rockets | s.t. |
| 32 | Stan Dewulf | Decathlon CMA CGM Team | s.t. |
| 33 | Rayan Boulahoite | Team TotalEnergies | s.t. |
| 34 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 35 | Thibaud Gruel | Groupama-FDJ United | s.t. |
| 36 | Matis Louvel | NSN Cycling Team | s.t. |
| 37 | Petr Kelemen | Tudor Pro Cycling Team | s.t. |
| 38 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 39 | Matys Grisel | Lotto-Intermarché | s.t. |
| 40 | Filip Maciejuk | Movistar Team | s.t. |
| 41 | Aivaras Mikutis | Tudor Pro Cycling Team | s.t. |
| 42 | Henrik Pedersen | Uno-X Mobility | s.t. |
| 43 | Noah Hobbs | EF Education-EasyPost | s.t. |
| 44 | Wessel Mouris | Unibet Rose Rockets | s.t. |
| 45 | Clement Izquierdo | Cofidis | s.t. |
| 46 | Fabien Doubey | Team TotalEnergies | s.t. |
| 47 | Sam Maisonobe | Cofidis | s.t. |
| 48 | Alexys Brunel | Team TotalEnergies | s.t. |
| 49 | Robbe Dhondt | Team Picnic PostNL | s.t. |
| 50 | Axel Bouquet | St Michel-Preference Home-Auber 93 | s.t. |
| 51 | Artem Shmidt | Netcompany INEOS Cycling Team | s.t. |
| 52 | Carlos Canal | Movistar Team | s.t. |
| 53 | Jonas Hem Hvideberg | Uno-X Mobility | s.t. |
| 54 | Victor Langellotti | Netcompany INEOS Cycling Team | s.t. |
| 55 | Christiaan van Rees | Team Picnic PostNL | s.t. |
| 56 | William Blume Levy | Uno-X Mobility | s.t. |
| 57 | Antoine Raugel | Van Rysel-Roubaix | s.t. |
| 58 | Valentin Madouas | Groupama-FDJ United | s.t. |
| 59 | Maxime Jarnet | Van Rysel-Roubaix | s.t. |
| 60 | Valentin Ferron | Cofidis | s.t. |
| 61 | Killian Théot | Van Rysel-Roubaix | s.t. |
| 62 | Baptiste Gillet | Nice Métropole-Côte d’Azur | s.t. |
| 63 | Abram Stockman | Unibet Rose Rockets | s.t. |
| 64 | Kiaan Watts | NSN Cycling Team | s.t. |
| 65 | Clément Russo | Groupama-FDJ United | s.t. |
| 66 | Bastien Tronchon | Groupama-FDJ United | s.t. |
| 67 | Alex Kirsch | Cofidis | s.t. |
| 68 | Lucas Hamilton | Netcompany INEOS Cycling Team | s.t. |
| 69 | Morne Van Niekerk | St Michel-Preference Home-Auber 93 | s.t. |
| 70 | Lorrenzo Manzin | Team TotalEnergies | s.t. |
| 71 | Léandre Lozouet | CIC Pro Cycling Academy | s.t. |
| 72 | Floris Van Tricht | NSN Cycling Team | s.t. |
| 73 | Matthew Fox | Lotto-Intermarché | s.t. |
| 74 | Moritz Kretschy | NSN Cycling Team | s.t. |
| 75 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | s.t. |
| 76 | Óscar Rodríguez | Netcompany INEOS Cycling Team | s.t. |
| 77 | Erik Resell | Uno-X Mobility | s.t. |
| 78 | Alexander Konijn | Nice Métropole-Côte d’Azur | s.t. |
| 79 | Storm Ingebrigtsen | Uno-X Mobility | s.t. |
| 80 | Arnaud Tendon | Van Rysel-Roubaix | s.t. |
| 81 | Thomas Champion | St Michel-Preference Home-Auber 93 | s.t. |
| 82 | Nicola Marcerou | Team TotalEnergies | s.t. |
| 83 | Benjamin Thomas | Cofidis | s.t. |
| 84 | Kasper Haugland | Decathlon CMA CGM Team | s.t. |
| 85 | Alan Jousseaume | Team TotalEnergies | s.t. |
| 86 | Louis Chaleil | Decathlon CMA CGM Team | s.t. |
| 87 | Oliver Mätik | Tudor Pro Cycling Team | s.t. |
| 88 | Simon Guglielmi | St Michel-Preference Home-Auber 93 | s.t. |
| 89 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | s.t. |
| 90 | Titouan Fontaine | Groupama-FDJ United | s.t. |
| 91 | Similien Hamon | CIC Pro Cycling Academy | s.t. |
| 92 | Jacob Eriksson | Tudor Pro Cycling Team | s.t. |
| 93 | Arvid de Kleijn | Tudor Pro Cycling Team | 0:38 |
| 94 | Nils Eekhoff | Team Picnic PostNL | 0:44 |
| 95 | Dillon Corkery | Team Picnic PostNL | 0:52 |
| 96 | Jens Verbrugghe | NSN Cycling Team | s.t. |
| 97 | James Knox | Team Picnic PostNL | 0:58 |
| 98 | Davide Formolo | Movistar Team | 1:03 |
| 99 | Oscar Chamberlain | Decathlon CMA CGM Team | 1:48 |
| 100 | Cameron Rogers | Netcompany INEOS Cycling Team | s.t. |
| 101 | Jan Maas | Cofidis | 1:51 |
| 102 | Mathias Sanlaville | CIC Pro Cycling Academy | @ 7sec |
| 103 | Bryan Coquard | Cofidis | @ 7sec |
| 104 | Callum Thornley | Red Bull-BORA-hansgrohe | 2:23 |
| 105 | Laurens Huys | Nice Métropole-Côte d’Azur | 2:49 |
| 106 | Victor Vaneeckhoutte | Lotto-Intermarché | s.t. |
| 107 | Shunsuke Imamura | Lotto-Intermarché | 3:24 |
| 108 | Matthias Schwarzbacher | EF Education-EasyPost | 3:35 |
| 109 | Roland Thalmann | Tudor Pro Cycling Team | 3:44 |
| 110 | Linus Larsson | EF Education-EasyPost | s.t. |
| 111 | Sebastian Putz | Red Bull-BORA-hansgrohe | s.t. |
| 112 | Alastair Mackellar | EF Education-EasyPost | s.t. |
| 113 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | s.t. |
| 114 | Joris Chaussinand | CIC Pro Cycling Academy | 3:53 |
| 115 | Tom Donnenwirth | Groupama-FDJ United | s.t. |
| 116 | Karsten Feldmann | Unibet Rose Rockets | 4:12 |
| 117 | Emil Herzog | Red Bull-BORA-hansgrohe | s.t. |
| 118 | Lionel Taminiaux | Lotto-Intermarché | @ 7sec |
GC after stage 2:
364.7 kilometers raced so far at an average speed of 44.851 km/hr
| 1 | Laurence Pithie | Red Bull-BORA-hansgrohe | 8hr 7min 53sec |
| 2 | Bryan Coquard | Cofidis | @ 4sec |
| 3 | Lewis Askey | NSN Cycling Team | 0:06 |
| 4 | Marijn van den Berg | EF Education-EasyPost | 0:10 |
| 5 | Kim Heiduk | Netcompany INEOS Cycling Team | s.t. |
| 6 | Maxime Vezie | CIC Pro Cycling Academy | s.t. |
| 7 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 8 | Thibaud Gruel | Groupama-FDJ United | s.t. |
| 9 | Liam Slock | Lotto-Intermarché | s.t. |
| 10 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 11 | Joppe Heremans | Van Rysel-Roubaix | s.t. |
| 12 | Rayan Boulahoite | Team TotalEnergies | s.t. |
| 13 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 14 | Stan Dewulf | Decathlon CMA CGM Team | s.t. |
| 15 | Matys Grisel | Lotto-Intermarché | s.t. |
| 16 | Clement Izquierdo | Cofidis | s.t. |
| 17 | Gonzalo Serrano | Movistar Team | s.t. |
| 18 | Carlos Canal | Movistar Team | s.t. |
| 19 | Théo Delacroix | St Michel-Preference Home-Auber 93 | s.t. |
| 20 | Robbe Dhondt | Team Picnic PostNL | s.t. |
| 21 | Alexys Brunel | Team TotalEnergies | s.t. |
| 22 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 23 | Natnael Tesfazion | Movistar Team | s.t. |
| 24 | Sam Maisonobe | Cofidis | s.t. |
| 25 | Aivaras Mikutis | Tudor Pro Cycling Team | s.t. |
| 26 | Wessel Mouris | Unibet Rose Rockets | s.t. |
| 27 | Killian Théot | Van Rysel-Roubaix | s.t. |
| 28 | Tobias Müller | Unibet Rose Rockets | s.t. |
| 29 | Henrik Pedersen | Uno-X Mobility | s.t. |
| 30 | Artem Shmidt | Netcompany INEOS Cycling Team | s.t. |
| 31 | Valentin Madouas | Groupama-FDJ United | s.t. |
| 32 | Fabien Doubey | Team TotalEnergies | s.t. |
| 33 | Valentin Ferron | Cofidis | s.t. |
| 34 | Victor Langellotti | Netcompany INEOS Cycling Team | s.t. |
| 35 | Jonas Hem Hvideberg | Uno-X Mobility | s.t. |
| 36 | Bastien Tronchon | Groupama-FDJ United | s.t. |
| 37 | Floris Van Tricht | NSN Cycling Team | s.t. |
| 38 | Jon Barrenetxea | Movistar Team | s.t. |
| 39 | Luca Van Boven | Lotto-Intermarché | s.t. |
| 40 | Léandre Lozouet | CIC Pro Cycling Academy | s.t. |
| 41 | Benjamin Thomas | Cofidis | s.t. |
| 42 | Matthew Fox | Lotto-Intermarché | s.t. |
| 43 | Alex Kirsch | Cofidis | s.t. |
| 44 | Alexander Konijn | Nice Métropole-Côte d’Azur | s.t. |
| 45 | Axel Bouquet | St Michel-Preference Home-Auber 93 | 0:32 |
| 46 | Maxime Jarnet | Van Rysel-Roubaix | 0:37 |
| 47 | Joren Bloem | Unibet Rose Rockets | 0:41 |
| 48 | William Blume Levy | Uno-X Mobility | 0:46 |
| 49 | Matis Louvel | NSN Cycling Team | 0:53 |
| 50 | Morne Van Niekerk | St Michel-Preference Home-Auber 93 | 1:04 |
| 51 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | s.t. |
| 52 | Storm Ingebrigtsen | Uno-X Mobility | 1:09 |
| 53 | Hugo Hofstetter | NSN Cycling Team | 1:19 |
| 54 | Luke Lamperti | EF Education-EasyPost | s.t. |
| 55 | Moritz Kretschy | NSN Cycling Team | s.t. |
| 56 | Erik Resell | Uno-X Mobility | s.t. |
| 57 | Maël Guégan | CIC Pro Cycling Academy | 1:44 |
| 58 | Daniel Årnes | Van Rysel-Roubaix | 1:53 |
| 59 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | 1:55 |
| 60 | Antoine Raugel | Van Rysel-Roubaix | 2:00 |
| 61 | Clément Russo | Groupama-FDJ United | s.t. |
| 62 | Lucas Hamilton | Netcompany INEOS Cycling Team | s.t. |
| 63 | Thomas Champion | St Michel-Preference Home-Auber 93 | s.t. |
| 64 | Titouan Fontaine | Groupama-FDJ United | s.t. |
| 65 | Alan Jousseaume | Team TotalEnergies | 2:16 |
| 66 | Jens Verbrugghe | NSN Cycling Team | 2:45 |
| 67 | Simon Guglielmi | St Michel-Preference Home-Auber 93 | 2:51 |
| 68 | Baptiste Gillet | Nice Métropole-Côte d’Azur | 2:59 |
| 69 | Abram Stockman | Unibet Rose Rockets | 3:04 |
| 70 | Nicola Marcerou | Team TotalEnergies | s.t. |
| 71 | Oscar Chamberlain | Decathlon CMA CGM Team | 3:23 |
| 72 | Cameron Rogers | Netcompany INEOS Cycling Team | s.t. |
| 73 | Callum Thornley | Red Bull-BORA-hansgrohe | 3:35 |
| 74 | Jan Maas | Cofidis | 3:44 |
| 75 | Mathias Sanlaville | CIC Pro Cycling Academy | 4:05 |
| 76 | Jacob Eriksson | Tudor Pro Cycling Team | 4:09 |
| 77 | Filip Maciejuk | Movistar Team | 4:41 |
| 78 | Noah Hobbs | EF Education-EasyPost | s.t. |
| 79 | Laurens Huys | Nice Métropole-Côte d’Azur | 4:42 |
| 80 | Gianluca Pollefliet | Decathlon CMA CGM Team | 4:45 |
| 81 | James Knox | Team Picnic PostNL | 5:32 |
| 82 | Emil Herzog | Red Bull-BORA-hansgrohe | 5:55 |
| 83 | Similien Hamon | CIC Pro Cycling Academy | 6:01 |
| 84 | Victor Papon | Nice Métropole-Côte d’Azur | 6:26 |
| 85 | Kévin Avoine | Van Rysel-Roubaix | 6:37 |
| 86 | Jason Tesson | Team TotalEnergies | 6:55 |
| 87 | Stian Fredheim | Uno-X Mobility | s.t. |
| 88 | Arne Marit | Red Bull-BORA-hansgrohe | s.t. |
| 89 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | s.t. |
| 90 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 91 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 92 | Matteo Milan | Groupama-FDJ United | s.t. |
| 93 | Petr Kelemen | Tudor Pro Cycling Team | s.t. |
| 94 | Christiaan van Rees | Team Picnic PostNL | s.t. |
| 95 | Kiaan Watts | NSN Cycling Team | s.t. |
| 96 | Lorrenzo Manzin | Team TotalEnergies | s.t. |
| 97 | Óscar Rodríguez | Netcompany INEOS Cycling Team | s.t. |
| 98 | Oliver Mätik | Tudor Pro Cycling Team | s.t. |
| 99 | Lionel Taminiaux | Lotto-Intermarché | s.t. |
| 100 | Davide Formolo | Movistar Team | 7:07 |
| 101 | Arvid de Kleijn | Tudor Pro Cycling Team | 7:26 |
| 102 | Nils Eekhoff | Team Picnic PostNL | 7:32 |
| 103 | Dillon Corkery | Team Picnic PostNL | 7:40 |
| 104 | Roland Thalmann | Tudor Pro Cycling Team | 7:46 |
| 105 | Shunsuke Imamura | Lotto-Intermarché | 8:02 |
| 106 | Victor Vaneeckhoutte | Lotto-Intermarché | 8:43 |
| 107 | Kasper Haugland | Decathlon CMA CGM Team | 8:44 |
| 108 | Arnaud Tendon | Van Rysel-Roubaix | 9:44 |
| 109 | Jhonatan Guatibonza | Movistar Team | 9:46 |
| 110 | Louis Chaleil | Decathlon CMA CGM Team | s.t. |
| 111 | Matthias Schwarzbacher | EF Education-EasyPost | 10:23 |
| 112 | Sebastian Putz | Red Bull-BORA-hansgrohe | 10:32 |
| 113 | Alastair Mackellar | EF Education-EasyPost | s.t. |
| 114 | Linus Larsson | EF Education-EasyPost | s.t. |
| 115 | Joris Chaussinand | CIC Pro Cycling Academy | 10:41 |
| 116 | Karsten Feldmann | Unibet Rose Rockets | 11:00 |
| 117 | Tom Donnenwirth | Groupama-FDJ United | 11:02 |
| 118 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | 11:28 |
Stage 2 map & profile:

Stage 2 map

Stage 2 profile
Wednesday, May 20: Stage 1, Lagny-le-Sec - Laon, 177.3 km

Laurence Pithie wins stage one. Photo: Xavier Pereyron/@inc_cyclisme
Les Woodland's book Cycling's 50 Triumphs and Tragedies: The rise and fall of bicycle racing's champions 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 Laon at 2:50 PM, local time: 19C (67F), mostly cloudy, with the wind from the west-southwest at 19 km/hr (12 mph). There is a 5% chance of rain.
The race: Here's the report from winner Laurence Pithie's Team Red Bull-BORA-hansgrohe.
Second victory in four days. After Laurence Pithie had already won Rund um Köln on Sunday, he struck again at the start of the 4 Days of Dunkirk.
In the north of France, he won the opening stage on a final climb out of a sprint. After 177 kilometres from Lagny-le-Sec to Laon, a 2000 metre long climb with an average gradient of just over four percent decided the day's winner. The finale had already been ridden twice before on a ten-kilometre circuit.
Callum Thornley prepares
A very long field reached the decisive crossing. It was led by Callum Thornley, who had the difficult job of controlling the large group in the final kilometres.
Laurence then did everything right in the absolute finale. He not only chose the right rear wheel, but also the perfect line on the looping uphill section. With his punch, the 23-year-old secured the fourth victory of his career and the second for Red Bull - BORA - hansgrohe within a few days.
Laurence Pithie: "The team did an excellent job today. It was a relatively easy day, but the final lap was a real challenge. I gave it my all on the home stretch. I’m very happy with this victory. Köln has given me a lot of confidence for this week."
Cesare Benedetti, Sports Director: "We knew we were in for a tricky final lap in Laon today. Things didn’t go exactly as we’d planned. Still, the guys did a great job for Laurence. I’d especially like to highlight Callum Thornley’s performance. We know Laurence is in good form. On top of that, he timed his sprint perfectly. We’re very, very happy with how things started here."
Complete results:
177.3 kilometers raced at an average speed of 45.397 km/hr
| 1 | Laurence Pithie | Red Bull-BORA-hansgrohe | 3hr 54min 20sec |
| 2 | Bryan Coquard | Cofidis | s.t. |
| 3 | Lewis Askey | NSN Cycling Team | s.t. |
| 4 | Thibaud Gruel | Groupama-FDJ United | s.t. |
| 5 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 6 | Clement Izquierdo | Cofidis | s.t. |
| 7 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 8 | Carlos Canal | Movistar Team | s.t. |
| 9 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 10 | Matys Grisel | Lotto-Intermarché | s.t. |
| 11 | Maxime Vezie | CIC Pro Cycling Academy | s.t. |
| 12 | Rayan Boulahoite | Team TotalEnergies | s.t. |
| 13 | Kim Heiduk | Netcompany INEOS Cycling Team | s.t. |
| 14 | Robbe Dhondt | Team Picnic PostNL | s.t. |
| 15 | Killian Théot | Van Rysel-Roubaix | s.t. |
| 16 | Alexys Brunel | Team TotalEnergies | s.t. |
| 17 | Stan Dewulf | Decathlon CMA CGM Team | s.t. |
| 18 | Sam Maisonobe | Cofidis | s.t. |
| 19 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 20 | Floris Van Tricht | NSN Cycling Team | s.t. |
| 21 | Valentin Ferron | Cofidis | s.t. |
| 22 | Valentin Madouas | Groupama-FDJ United | s.t. |
| 23 | Bastien Tronchon | Groupama-FDJ United | s.t. |
| 24 | Joppe Heremans | Van Rysel-Roubaix | s.t. |
| 25 | Wessel Mouris | Unibet Rose Rockets | s.t. |
| 26 | Liam Slock | Lotto-Intermarché | s.t. |
| 27 | Aivaras Mikutis | Tudor Pro Cycling Team | s.t. |
| 28 | Léandre Lozouet | CIC Pro Cycling Academy | s.t. |
| 29 | Artem Shmidt | Netcompany INEOS Cycling Team | s.t. |
| 30 | Victor Langellotti | Netcompany INEOS Cycling Team | s.t. |
| 31 | Gonzalo Serrano | Movistar Team | s.t. |
| 32 | Benjamin Thomas | Cofidis | s.t. |
| 33 | Théo Delacroix | St Michel-Preference Home-Auber 93 | s.t. |
| 34 | Jonas Hem Hvideberg | Uno-X Mobility | s.t. |
| 35 | Fabien Doubey | Team TotalEnergies | s.t. |
| 36 | Natnael Tesfazion | Movistar Team | s.t. |
| 37 | Henrik Pedersen | Uno-X Mobility | s.t. |
| 38 | Axel Bouquet | St Michel-Preference Home-Auber 93 | @ 22sec |
| 39 | Maxime Jarnet | Van Rysel-Roubaix | 0:27 |
| 40 | Joren Bloem | Unibet Rose Rockets | 0:31 |
| 41 | William Blume Levy | Uno-X Mobility | 0:36 |
| 42 | Matis Louvel | NSN Cycling Team | 0:44 |
| 43 | Morne Van Niekerk | St Michel-Preference Home-Auber 93 | 0:54 |
| 44 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | s.t. |
| 45 | Storm Ingebrigtsen | Uno-X Mobility | 0:59 |
| 46 | Hugo Hofstetter | NSN Cycling Team | 1:09 |
| 47 | Moritz Kretschy | NSN Cycling Team | s.t. |
| 48 | Callum Thornley | Red Bull-BORA-hansgrohe | s.t. |
| 49 | Luke Lamperti | EF Education-EasyPost | s.t. |
| 50 | Niklas Märkl | Team Picnic PostNL | @ 0sec |
| 51 | Erik Resell | Uno-X Mobility | 1:09 |
| 52 | Matthew Fox | Lotto-Intermarché | @ 0sec |
| 53 | Cameron Rogers | Netcompany INEOS Cycling Team | 1:32 |
| 54 | Oscar Chamberlain | Decathlon CMA CGM Team | s.t. |
| 55 | Emil Herzog | Red Bull-BORA-hansgrohe | 1:40 |
| 56 | Laurens Huys | Nice Métropole-Côte d’Azur | 1:50 |
| 57 | Maël Guégan | CIC Pro Cycling Academy | s.t. |
| 58 | Jan Maas | Cofidis | s.t. |
| 59 | Antoine Raugel | Van Rysel-Roubaix | s.t. |
| 60 | Daniel Årnes | Van Rysel-Roubaix | s.t. |
| 61 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | s.t. |
| 62 | Lucas Hamilton | Netcompany INEOS Cycling Team | s.t. |
| 63 | Clément Russo | Groupama-FDJ United | s.t. |
| 64 | Jens Verbrugghe | NSN Cycling Team | s.t. |
| 65 | Titouan Fontaine | Groupama-FDJ United | s.t. |
| 66 | Thomas Champion | St Michel-Preference Home-Auber 93 | s.t. |
| 67 | Alexander Konijn | Nice Métropole-Côte d’Azur | @ 0sec |
| 68 | Alan Jousseaume | Team TotalEnergies | 2:06 |
| 69 | Jon Barrenetxea | Movistar Team | @ 0sec |
| 70 | Tobias Müller | Unibet Rose Rockets | @ 0sec |
| 71 | Simon Guglielmi | St Michel-Preference Home-Auber 93 | 2:41 |
| 72 | Luca Van Boven | Lotto-Intermarché | @ 0sec |
| 73 | Baptiste Gillet | Nice Métropole-Côte d’Azur | 2:49 |
| 74 | Abram Stockman | Unibet Rose Rockets | 2:54 |
| 75 | Nicola Marcerou | Team TotalEnergies | s.t. |
| 76 | Alex Kirsch | Cofidis | @ 0sec |
| 77 | Mathias Sanlaville | CIC Pro Cycling Academy | 3:55 |
| 78 | Jacob Eriksson | Tudor Pro Cycling Team | 3:59 |
| 79 | Roland Thalmann | Tudor Pro Cycling Team | s.t. |
| 80 | Filip Maciejuk | Movistar Team | 4:31 |
| 81 | James Knox | Team Picnic PostNL | s.t. |
| 82 | Noah Hobbs | EF Education-EasyPost | s.t. |
| 83 | Gianluca Pollefliet | Decathlon CMA CGM Team | 4:35 |
| 84 | Shunsuke Imamura | Lotto-Intermarché | s.t. |
| 85 | Similien Hamon | CIC Pro Cycling Academy | 5:51 |
| 86 | Victor Vaneeckhoutte | Lotto-Intermarché | s.t. |
| 87 | Davide Formolo | Movistar Team | 6:01 |
| 88 | Christiaan van Rees | Team Picnic PostNL | 6:45 |
| 89 | Arne Marit | Red Bull-BORA-hansgrohe | s.t. |
| 90 | Sebastian Putz | Red Bull-BORA-hansgrohe | s.t. |
| 91 | Alastair Mackellar | EF Education-EasyPost | s.t. |
| 92 | Kiaan Watts | NSN Cycling Team | s.t. |
| 93 | Nils Eekhoff | Team Picnic PostNL | s.t. |
| 94 | Petr Kelemen | Tudor Pro Cycling Team | s.t. |
| 95 | Oliver Mätik | Tudor Pro Cycling Team | s.t. |
| 96 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | s.t. |
| 97 | Dillon Corkery | Team Picnic PostNL | s.t. |
| 98 | Jason Tesson | Team TotalEnergies | s.t. |
| 99 | Linus Larsson | EF Education-EasyPost | s.t. |
| 100 | Victor Papon | Nice Métropole-Côte d’Azur | s.t. |
| 101 | Lorrenzo Manzin | Team TotalEnergies | s.t. |
| 102 | Matthias Schwarzbacher | EF Education-EasyPost | s.t. |
| 103 | Óscar Rodríguez | Netcompany INEOS Cycling Team | s.t. |
| 104 | Stian Fredheim | Uno-X Mobility | s.t. |
| 105 | Kévin Avoine | Van Rysel-Roubaix | s.t. |
| 106 | Karsten Feldmann | Unibet Rose Rockets | s.t. |
| 107 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 108 | Matteo Milan | Groupama-FDJ United | s.t. |
| 109 | Lionel Taminiaux | Lotto-Intermarché | s.t. |
| 110 | Arvid de Kleijn | Tudor Pro Cycling Team | s.t. |
| 111 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 112 | Joris Chaussinand | CIC Pro Cycling Academy | s.t. |
| 113 | Tom Donnenwirth | Groupama-FDJ United | 7:06 |
| 114 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | 7:44 |
| 115 | Kasper Haugland | Decathlon CMA CGM Team | 8:34 |
| 116 | Arnaud Tendon | Van Rysel-Roubaix | 9:36 |
| 117 | Louis Chaleil | Decathlon CMA CGM Team | s.t. |
| 118 | Jhonatan Guatibonza | Movistar Team | s.t. |
GC after stage 1:
| 1 | Laurence Pithie | Red Bull-BORA-hansgrohe | 3hr 54min 10sec |
| 2 | Bryan Coquard | Cofidis | @ 4sec |
| 3 | Lewis Askey | NSN Cycling Team | 0:06 |
| 4 | Thibaud Gruel | Groupama-FDJ United | 0:10 |
| 5 | Antoine L'Hote | Decathlon CMA CGM Team | s.t. |
| 6 | Clement Izquierdo | Cofidis | s.t. |
| 7 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 8 | Carlos Canal | Movistar Team | s.t. |
| 9 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 10 | Matys Grisel | Lotto-Intermarché | s.t. |
| 11 | Maxime Vezie | CIC Pro Cycling Academy | s.t. |
| 12 | Rayan Boulahoite | Team TotalEnergies | s.t. |
| 13 | Kim Heiduk | Netcompany INEOS Cycling Team | s.t. |
| 14 | Robbe Dhondt | Team Picnic PostNL | s.t. |
| 15 | Killian Théot | Van Rysel-Roubaix | s.t. |
| 16 | Alexys Brunel | Team TotalEnergies | s.t. |
| 17 | Stan Dewulf | Decathlon CMA CGM Team | s.t. |
| 18 | Sam Maisonobe | Cofidis | s.t. |
| 19 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 20 | Floris Van Tricht | NSN Cycling Team | s.t. |
| 21 | Valentin Ferron | Cofidis | s.t. |
| 22 | Valentin Madouas | Groupama-FDJ United | s.t. |
| 23 | Bastien Tronchon | Groupama-FDJ United | s.t. |
| 24 | Joppe Heremans | Van Rysel-Roubaix | s.t. |
| 25 | Wessel Mouris | Unibet Rose Rockets | s.t. |
| 26 | Liam Slock | Lotto-Intermarché | s.t. |
| 27 | Aivaras Mikutis | Tudor Pro Cycling Team | s.t. |
| 28 | Léandre Lozouet | CIC Pro Cycling Academy | s.t. |
| 29 | Artem Shmidt | Netcompany INEOS Cycling Team | s.t. |
| 30 | Victor Langellotti | Netcompany INEOS Cycling Team | s.t. |
| 31 | Gonzalo Serrano | Movistar Team | s.t. |
| 32 | Benjamin Thomas | Cofidis | s.t. |
| 33 | Théo Delacroix | St Michel-Preference Home-Auber 93 | s.t. |
| 34 | Jonas Hem Hvideberg | Uno-X Mobility | s.t. |
| 35 | Fabien Doubey | Team TotalEnergies | s.t. |
| 36 | Natnael Tesfazion | Movistar Team | s.t. |
| 37 | Henrik Pedersen | Uno-X Mobility | s.t. |
| 38 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 39 | Matthew Fox | Lotto-Intermarché | s.t. |
| 40 | Alexander Konijn | Nice Métropole-Côte d’Azur | s.t. |
| 41 | Jon Barrenetxea | Movistar Team | s.t. |
| 42 | Tobias Müller | Unibet Rose Rockets | s.t. |
| 43 | Luca Van Boven | Lotto-Intermarché | s.t. |
| 44 | Alex Kirsch | Cofidis | s.t. |
| 45 | Axel Bouquet | St Michel-Preference Home-Auber 93 | 0:32 |
| 46 | Maxime Jarnet | Van Rysel-Roubaix | 0:37 |
| 47 | Joren Bloem | Unibet Rose Rockets | 0:41 |
| 48 | William Blume Levy | Uno-X Mobility | 0:46 |
| 49 | Matis Louvel | NSN Cycling Team | 0:53 |
| 50 | Morne Van Niekerk | St Michel-Preference Home-Auber 93 | 1:04 |
| 51 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | s.t. |
| 52 | Storm Ingebrigtsen | Uno-X Mobility | 1:09 |
| 53 | Hugo Hofstetter | NSN Cycling Team | 1:19 |
| 54 | Moritz Kretschy | NSN Cycling Team | s.t. |
| 55 | Callum Thornley | Red Bull-BORA-hansgrohe | s.t. |
| 56 | Luke Lamperti | EF Education-EasyPost | s.t. |
| 57 | Erik Resell | Uno-X Mobility | s.t. |
| 58 | Cameron Rogers | Netcompany INEOS Cycling Team | 1:42 |
| 59 | Oscar Chamberlain | Decathlon CMA CGM Team | s.t. |
| 60 | Emil Herzog | Red Bull-BORA-hansgrohe | 1:50 |
| 61 | Laurens Huys | Nice Métropole-Côte d’Azur | 2:00 |
| 62 | Maël Guégan | CIC Pro Cycling Academy | s.t. |
| 63 | Jan Maas | Cofidis | s.t. |
| 64 | Antoine Raugel | Van Rysel-Roubaix | s.t. |
| 65 | Daniel Årnes | Van Rysel-Roubaix | s.t. |
| 66 | Jaakko Hänninen | Nice Métropole-Côte d’Azur | s.t. |
| 67 | Lucas Hamilton | Netcompany INEOS Cycling Team | s.t. |
| 68 | Clément Russo | Groupama-FDJ United | s.t. |
| 69 | Jens Verbrugghe | NSN Cycling Team | s.t. |
| 70 | Titouan Fontaine | Groupama-FDJ United | s.t. |
| 71 | Thomas Champion | St Michel-Preference Home-Auber 93 | s.t. |
| 72 | Alan Jousseaume | Team TotalEnergies | 2:16 |
| 73 | Simon Guglielmi | St Michel-Preference Home-Auber 93 | 2:51 |
| 74 | Baptiste Gillet | Nice Métropole-Côte d’Azur | 2:59 |
| 75 | Abram Stockman | Unibet Rose Rockets | 3:04 |
| 76 | Nicola Marcerou | Team TotalEnergies | s.t. |
| 77 | Mathias Sanlaville | CIC Pro Cycling Academy | 4:05 |
| 78 | Jacob Eriksson | Tudor Pro Cycling Team | 4:09 |
| 79 | Roland Thalmann | Tudor Pro Cycling Team | s.t. |
| 80 | Filip Maciejuk | Movistar Team | 4:41 |
| 81 | James Knox | Team Picnic PostNL | s.t. |
| 82 | Noah Hobbs | EF Education-EasyPost | s.t. |
| 83 | Gianluca Pollefliet | Decathlon CMA CGM Team | 4:45 |
| 84 | Shunsuke Imamura | Lotto-Intermarché | s.t. |
| 85 | Similien Hamon | CIC Pro Cycling Academy | 6:01 |
| 86 | Victor Vaneeckhoutte | Lotto-Intermarché | s.t. |
| 87 | Davide Formolo | Movistar Team | 6:11 |
| 88 | Victor Papon | Nice Métropole-Côte d’Azur | 6:49 |
| 89 | Kévin Avoine | Van Rysel-Roubaix | 6:52 |
| 90 | Christiaan van Rees | Team Picnic PostNL | 6:55 |
| 91 | Arne Marit | Red Bull-BORA-hansgrohe | s.t. |
| 92 | Sebastian Putz | Red Bull-BORA-hansgrohe | s.t. |
| 93 | Alastair Mackellar | EF Education-EasyPost | s.t. |
| 94 | Kiaan Watts | NSN Cycling Team | s.t. |
| 95 | Nils Eekhoff | Team Picnic PostNL | s.t. |
| 96 | Petr Kelemen | Tudor Pro Cycling Team | s.t. |
| 97 | Oliver Mätik | Tudor Pro Cycling Team | s.t. |
| 98 | Jérémy Lecroq | St Michel-Preference Home-Auber 93 | s.t. |
| 99 | Dillon Corkery | Team Picnic PostNL | s.t. |
| 100 | Jason Tesson | Team TotalEnergies | s.t. |
| 101 | Linus Larsson | EF Education-EasyPost | s.t. |
| 102 | Lorrenzo Manzin | Team TotalEnergies | s.t. |
| 103 | Matthias Schwarzbacher | EF Education-EasyPost | s.t. |
| 104 | Óscar Rodríguez | Netcompany INEOS Cycling Team | s.t. |
| 105 | Stian Fredheim | Uno-X Mobility | s.t. |
| 106 | Karsten Feldmann | Unibet Rose Rockets | s.t. |
| 107 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 108 | Matteo Milan | Groupama-FDJ United | s.t. |
| 109 | Lionel Taminiaux | Lotto-Intermarché | s.t. |
| 110 | Arvid de Kleijn | Tudor Pro Cycling Team | s.t. |
| 111 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 112 | Joris Chaussinand | CIC Pro Cycling Academy | s.t. |
| 113 | Tom Donnenwirth | Groupama-FDJ United | 7:16 |
| 114 | Tom Mainguenaud | Nice Métropole-Côte d’Azur | 7:51 |
| 115 | Kasper Haugland | Decathlon CMA CGM Team | 8:44 |
| 116 | Arnaud Tendon | Van Rysel-Roubaix | 9:44 |
| 117 | Louis Chaleil | Decathlon CMA CGM Team | 9:46 |
| 118 | Jhonatan Guatibonza | Movistar Team | s.t. |
Stage 1 map & profile:
Stage 1 map

Stage 1 profile
Start list with back numbers, May 19, 2026:
| Netcompany INEOS | |
| 1 | Lucas Hamilton |
| 2 | Kim Heiduk |
| 3 | Óscar Rodríguez |
| 4 | Artem Shmidt |
| 5 | Victor Langellotti |
| 6 | Sam Welsford |
| 7 | Cameron Rogers |
| NSN Cycling Team | |
| 11 | Lewis Askey |
| 12 | Hugo Hofstetter |
| 13 | Matis Louvel |
| 14 | Floris Van Tricht |
| 15 | Moritz Kretschy |
| 16 | Jens Verbrugghe |
| 17 | Kiaan Watts |
| Red Bull-BORA-hansgrohe | |
| 21 | Emil Herzog |
| 22 | Arne Marit |
| 23 | Jordi Meeus |
| 24 | Laurence Pithie |
| 25 | Callum Thornley |
| 26 | Danny van Poppel |
| 27 | Sebastian Putz |
| Decathlon CMA CGM Team | |
| 31 | Louis Chaleil |
| 32 | Oscar Chamberlain |
| 33 | Stan Dewulf |
| 34 | Pierre Gautherat |
| 35 | Kasper Haugland |
| 36 | Antoine L'Hote |
| 37 | Gianluca Pollefliet |
| Groupama-FDJ United | |
| 41 | Tom Donnenwirth |
| 42 | Titouan Fontaine |
| 43 | Valentin Madouas |
| 44 | Matteo Milan |
| 45 | Thibaud Gruel |
| 46 | Clément Russo |
| 47 | Bastien Tronchon |
| EF Education-EasyPost | |
| 51 | Marijn van den Berg |
| 52 | Noah Hobbs |
| 53 | Kasper Asgreen |
| 54 | Matthias Schwarzbacher |
| 55 | Luke Lamperti |
| 56 | Alastair Mackellar |
| 57 | Linus Larsson |
| Lotto-Intermarché | |
| 61 | Liam Slock |
| 62 | Matthew Fox |
| 63 | Lionel Taminiaux |
| 64 | Matys Grisel |
| 65 | Shunsuke Imamura |
| 66 | Luca Van Boven |
| 67 | Victor Vaneeckhoutte |
| Movistar Team | |
| 71 | Jon Barrenetxea |
| 72 | Carlos Canal |
| 73 | Davide Formolo |
| 74 | Gonzalo Serrano |
| 75 | Natnael Tesfazion |
| 76 | Filip Maciejuk |
| 77 | Jhonatan Guatibonza |
| Team Picnic PostNL | |
| 81 | Dillon Corkery |
| 82 | Pavel Bittner |
| 83 | Robbe Dhondt |
| 84 | Nils Eekhoff |
| 85 | James Knox |
| 86 | Niklas Märkl |
| 87 | Christiaan van Rees |
| Uno-X Mobility | |
| 91 | Rasmus Tiller |
| 92 | Erik Resell |
| 93 | William Blume Levy |
| 94 | Stian Fredheim |
| 95 | Jonas Hem Hvideberg |
| 96 | Henrik Pedersen |
| 97 | Storm Ingebrigtsen |
| Cofidis | |
| 101 | Bryan Coquard |
| 102 | Clement Izquierdo |
| 103 | Sam Maisonobe |
| 104 | Alex Kirsch |
| 105 | Benjamin Thomas |
| 106 | Valentin Ferron |
| 107 | Jan Maas |
| Tudor Pro Cycling Team | |
| 111 | Arvid de Kleijn |
| 112 | Jacob Eriksson |
| 113 | Petr Kelemen |
| 114 | Oliver Mätik |
| 115 | Marius Mayrhofer |
| 116 | Aivaras Mikutis |
| 117 | Roland Thalmann |
| Team TotalEnergies | |
| 121 | Rayan Boulahoite |
| 122 | Alexys Brunel |
| 123 | Fabien Doubey |
| 124 | Lorrenzo Manzin |
| 125 | Nicola Marcerou |
| 126 | Jason Tesson |
| 127 | Alan Jousseaume |
| Unibet Rose Rockets | |
| 131 | Abram Stockman |
| 132 | Joren Bloem |
| 133 | Adam Toupalik |
| 134 | Karsten Feldmann |
| 135 | Tobias Müller |
| 136 | Wessel Mouris |
| CIC Pro Cycling Academy | |
| 141 | Joris Chaussinand |
| 142 | Maël Guégan |
| 143 | Similien Hamon |
| 144 | Lenaic Langella |
| 145 | Léandre Lozouet |
| 146 | Mathias Sanlaville |
| 147 | Maxime Vezie |
| Nice Métropole-Côte d'Azur | |
| 151 | Clément Davy |
| 152 | Alexander Konijn |
| 153 | Tom Mainguenaud |
| 154 | Laurens Huys |
| 155 | Baptiste Gillet |
| 156 | Victor Papon |
| 157 | Jaakko Hänninen |
| Van Rysel-Roubaix | |
| 161 | Kévin Avoine |
| 162 | Joppe Heremans |
| 163 | Maxime Jarnet |
| 164 | Daniel Årnes |
| 165 | Antoine Raugel |
| 166 | Arnaud Tendon |
| 167 | Killian Théot |
| St Michel-Preference Home-Auber 93 | |
| 171 | Axel Bouquet |
| 172 | Thomas Champion |
| 173 | Théo Delacroix |
| 174 | Simon Guglielmi |
| 175 | Jérémy Lecroq |
| 176 | Lucas Bénéteau |
| 177 | Morne Van Niekerk |