
| 1 | Florence – Rimini (Italy) | Maxim Van Gils | |
| 2 | Cesenatico – Bologna (Italy) | Wout van Aert | |
| 3 | Piacenza – Turin (Italy) | Jasper Philipsen | |
| 4 | Pinerolo (Italy) – Valloire | Tom Pidcock | |
| 5 | Saint-Jean-de-Maurienne – Saint-Vulbas | 1 | Mark Cavendish |
| 6 | Mâcon – Dijon | Sam Bennett | |
| 7 | Nuits-Saint-Georges – Gevrey-Chambertin | 1 | Remco Evenepoel |
| 8 | Semur-en-Auxois – Colombey-les-Deux-Églises | Mads Pedersen | |
| 9 | Troyes – Troyes | Mathieu van der Poel | |
| 10 | Orléans – Saint-Amand-Montrond | Dylan Groenewegen | |
| 11 | Évaux-les-Bains – Le Lioran | Romain Grégoire | |
| 12 | Aurillac – Villeneuve-sur-Lot | Arnaud De Lie | |
| 13 | Agen – Pau | Phil Bauhaus | |
| 14 | Pau – Saint-Lary-Soulan (Pla d'Adet) | Romain Bardet | |
| 15 | Loudenvielle – Plateau de Beille | 1 | Tadej Pogačar |
| 16 | Gruissan – Nîmes | Pascal Ackermann | |
| 17 | Saint-Paul-Trois-Châteaux – SuperDévoluy | Oier Lazkano | |
| 18 | Gap – Barcelonnette | Magnus Cort | |
| 19 | Embrun – Isola 2000 | Carlos Rodríguez | |
| 20 | Nice – Col de la Couillole | Felix Gall | |
| 21 | Monaco – Nice | João Almeida |