Etapa | Fecha | Percorríu | type | Distancia (km) | Desnivel (m) | Ganador | Líder |
|---|
| 1ᵉʳ etapa | 1 xnt | Copenḥague – Copenḥague | contrarreló individual | 13,2 | 20 m | Yves Lampaert | Yves Lampaert |
| 2ª etapa | 2 xnt | Roskilde – Nyborg | etapa llana | 202,2 | 1102 m | Fabio Jakobsen | Wout van Aert |
| 3ᵉʳ etapa | 3 xnt | Vejle – Sønderborg | etapa llana | 182 | 1285 m | Dylan Groenewegen | Wout van Aert |
| 4 de xnt | Día de descansu | Día de descansu | |
| 4ª etapa | 5 xnt | Dunkerque – Calais | etapa escarpada | 171,5 | 1796 m | Wout van Aert | Wout van Aert |
| 5ª etapa | 6 xnt | Lille – Arenberg Trench | etapa escarpada | 157 | 537 m | Simon Clarke | Wout van Aert |
| 6ª etapa | 7 xnt | Binche – Longwy | etapa escarpada | 219,9 | 2483 m | Tadej Pogačar | Tadej Pogačar |
| 7ª etapa | 8 xnt | Tomblaine – Planche des Belles Filles | etapa de monte | 176,3 | 2532 m | Tadej Pogačar | Tadej Pogačar |
| 8ª etapa | 9 xnt | Dole – Lausana | etapa escarpada | 186,3 | 2529 m | Wout van Aert | Tadej Pogačar |
| 9ª etapa | 10 xnt | Aigle – Châtel | etapa de monte | 192,9 | 3695 m | Bob Jungels | Tadej Pogačar |
| 11 de xnt | Día de descansu | Día de descansu | |
| 10ª etapa | 12 xnt | Morzine – Megève | etapa escarpada | 148,1 | 2775 m | Magnus Cort Nielsen | Tadej Pogačar |
| 11ª etapa | 13 xnt | Albertville – Col du Granon | etapa de monte | 151,7 | 4036 m | Jonas Vingegaard | Jonas Vingegaard |
| 12ª etapa | 14 xnt | Briançon – Alpe d'Huez | etapa de monte | 165,1 | 4661 m | Thomas Pidcock | Jonas Vingegaard |
| 13ª etapa | 15 xnt | Le Bourg-d'Oisans – Saint-Étienne | etapa llana | 192,6 | 2114 m | Mads Pedersen | Jonas Vingegaard |
| 14ª etapa | 16 xnt | Saint-Étienne – Mende | etapa de mediu monte | 192,5 | 3499 m | Michael Matthews | Jonas Vingegaard |
| 15ª etapa | 17 xnt | Rodez – Carcassonne | etapa llana | 202,5 | 2416 m | Jasper Philipsen | Jonas Vingegaard |
| 18 de xnt | Día de descansu | Día de descansu | |
| 16ª etapa | 19 xnt | Carcassonne – Foix | etapa de mediu monte | 178,5 | 3422 m | Hugo Houle | Jonas Vingegaard |
| 17ª etapa | 20 xnt | Saint-Gaudens – Peyragudes | etapa de monte | 129,7 | 3368 m | Tadej Pogačar | Jonas Vingegaard |
| 18ª etapa | 21 xnt | Lourdes – Hautacam | etapa de monte | 143,2 | 4056 m | Jonas Vingegaard | Jonas Vingegaard |
| 19ª etapa | 22 xnt | Castelnau-Magnoac – Cahors | etapa llana | 188,3 | 1326 m | Christophe Laporte | Jonas Vingegaard |
| 20ª etapa | 23 xnt | Lacapelle-Marival – Rocamadour | contrarreló individual | 40,7 | 442 m | Wout van Aert | Jonas Vingegaard |
| 21ª etapa | 24 xnt | Paris La Défense Arena – París | etapa llana | 115,6 | 614 m | Jasper Philipsen | Jonas Vingegaard |