Etapa | Fecha | Percorríu | type | Distancia (km) | Desnivel (m) | Ganador | Líder |
|---|
| 1ᵉʳ etapa | 1 xnt | Bilbao – Bilbao | etapa escarpada | 182 | 3238 m | Adam Yates | Adam Yates |
| 2ª etapa | 2 xnt | Vitoria – Donostia | etapa escarpada | 208,9 | 2943 m | Victor Lafay | Adam Yates |
| 3ᵉʳ etapa | 3 xnt | Amorebieta-Etxano – Bayonne | etapa llana | 193,5 | 2600 m | Jasper Philipsen | Adam Yates |
| 4ª etapa | 4 xnt | Dax – Nogaro | etapa llana | 181,8 | 1434 m | Jasper Philipsen | Adam Yates |
| 5ª etapa | 5 xnt | Pau – Laruns | etapa de monte | 162,7 | 3659 m | Jai Hindley | Jai Hindley |
| 6ª etapa | 6 xnt | Tarbes – Cauterets | etapa de monte | 144,9 | 3922 m | Tadej Pogačar | Jonas Vingegaard |
| 7ª etapa | 7 xnt | Mont-de-Marsan – Burdeos | etapa llana | 169,9 | 785 m | Jasper Philipsen | Jonas Vingegaard |
| 8ª etapa | 8 xnt | Libourne – Limoges | etapa escarpada | 200,7 | 1812 m | Mads Pedersen | Jonas Vingegaard |
| 9ª etapa | 9 xnt | Saint-Léonard-de-Noblat – Puy de Dôme | etapa de monte | 182,4 | 3494 m | Michael Woods | Jonas Vingegaard |
| 10 de xnt | Día de descansu | Día de descansu | |
| 10ª etapa | 11 xnt | Vulcania – Issoire | etapa escarpada | 167,2 | 3127 m | Peio Bilbao | Jonas Vingegaard |
| 11ª etapa | 12 xnt | Clermont-Ferrand – Moulins | etapa llana | 179,8 | 1854 m | Jasper Philipsen | Jonas Vingegaard |
| 12ª etapa | 13 xnt | Roanne – Belleville-en-Beaujolais | etapa escarpada | 168,8 | 3088 m | Ion Izagirre | Jonas Vingegaard |
| 13ª etapa | 14 xnt | Châtillon-sur-Chalaronne – Col du Grand Colombier | etapa de monte | 137,8 | 2410 m | Michał Kwiatkowski | Jonas Vingegaard |
| 14ª etapa | 15 xnt | Annemasse – Morzine | etapa de monte | 151,8 | 4281 m | Carlos Rodríguez Cano | Jonas Vingegaard |
| 15ª etapa | 16 xnt | Les Gets – Saint-Gervais-les-Bains | etapa de monte | 179 | 4527 m | Wout Poels | Jonas Vingegaard |
| 17 de xnt | Día de descansu | Día de descansu | |
| 16ª etapa | 18 xnt | Passy – Combloux | contrarreló individual | 22,4 | 638 m | Jonas Vingegaard | Jonas Vingegaard |
| 17ª etapa | 19 xnt | Saint-Gervais-les-Bains – Courchevel | etapa de monte | 165,7 | 5405 m | Felix Gall | Jonas Vingegaard |
| 18ª etapa | 20 xnt | Moûtiers – Bourg-en-Bresse | etapa llana | 184,9 | 1211 m | Kasper Asgreen | Jonas Vingegaard |
| 19ª etapa | 21 xnt | Moirans-en-Montagne – Poligny | etapa escarpada | 172,8 | 1950 m | Matej Mohorič | Jonas Vingegaard |
| 20ª etapa | 22 xnt | Belfort – Le Markstein | etapa de monte | 133,5 | 3484 m | Tadej Pogačar | Jonas Vingegaard |
| 21ª etapa | 23 xnt | Saint-Quentin-en-Yvelines – París | etapa llana | 115,1 | 598 m | Jordi Meeus | Jonas Vingegaard |