1 | Lille – Lille | Jonathan Milan | |
2 | Lauwin-Planque – Boulogne-sur-Mer | 1 | Mathieu van der Poel |
3 | Valenciennes – Dunkirk | Jasper Philipsen | |
4 | Amiens – Rouen | Wout van Aert | |
5 | Caen – Caen | Filippo Ganna | |
6 | Bayeux – Vire Normandie | Kévin Vauquelin | |
7 | Saint-Malo – Guerlédan (Mûr-de-Bretagne) | Alex Aranburu | |
8 | Saint-Méen-le-Grand – Laval | Tobias Lund Andresen | |
9 | Chinon – Châteauroux | 1 | Tim Merlier |
10 | Ennezat – Mont-Dore | Primož Roglič | |
11 | Toulouse – Toulouse | Biniam Girmay | |
12 | Auch – Hautacam | Tadej Pogačar | |
13 | Loudenvielle – Peyragudes | Jonas Vingegaard | |
14 | Pau – Superbagnères | Matteo Jorgenson | |
15 | Muret – Carcassonne | Kaden Groves | |
16 | Montpellier – Mont Ventoux | João Almeida | |
17 | Bollène – Valence | Dylan Groenewegen | |
18 | Vif – Courchevel (Col de la Loze) | Florian Lipowitz | |
19 | Albertville – La Plagne | Simon Yates | |
20 | Nantua – Pontarlier | Romain Grégoire | |
21 | Mantes-la-Ville – Paris (Champs-Élysées) | Jordi Meeus |