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