| Rg | Land | Name | Team | h |
|---|---|---|---|---|
| 1 | ![]() | Lennard Kämna | Bora-hansgrohe (BOH) | 4:12:52 |
| 2 | ![]() | Richard Carapaz Montenegro | Team Ineos Grenadiers (INS) | + 1:27 |
| 3 | ![]() | Sebastien Reichenbach | Groupama-FDJ (GFC) | + 1:56 |
| 4 | ![]() | Pawel Siwakow | Team Ineos Grenadiers (INS) | + 2:34 |
| 5 | ![]() | Simon Geschke | CCC Team (CCC) | + 2:35 |
| 6 | ![]() | Warren Barguil | Team Arkea-Samsic (PCB) | + 2:37 |
| 7 | ![]() | Tiesj Benoot | Team Sunweb (SUN) | + 2:41 |
| 8 | ![]() | Nicolas Roche | Team Sunweb (SUN) | + 2:47 |
| 9 | ![]() | Quentin Pacher | B&B Hotels – Vital Concept KTM (BVC) | + 2:51 |
| 10 | ![]() | Julian Alaphilippe | Deceuninck – Quick-Step (DQT) | + 2:54 |
| 11 | ![]() | Alberto Bettiol | EF Pro Cycling (EF1) | + 5:12 |
| 12 | ![]() | Carlos Verona | Movistar Team (MOV) | + 5:15 |
| 13 | ![]() | Pierre Rolland | B&B Hotels – Vital Concept KTM (BVC) | + 5:18 |
| 14 | ![]() | Matteo Trentin | CCC Team (CCC) | + 6:11 |
| 15 | ![]() | Imanol Erviti | Movistar Team (MOV) | + 6:11 |
| 16 | ![]() | Andrey Amador Bikkazakova | Team Ineos Grenadiers (INS) | + 6:11 |
| 17 | ![]() | Romain Sicard | Total Direct Energie (TDE) | + 10:46 |
| 18 | ![]() | Winner Anacona Gomez | Team Arkea-Samsic (PCB) | + 10:46 |
| 19 | ![]() | Casper Pedersen | Team Sunweb (SUN) | + 16:09 |
| 20 | ![]() | Miguel Angel Lopez Moreno | Astana Pro Team (AST) | + 16:48 |
| 21 | ![]() | Tadej Pogacar | UAE Team Emirates (UAD) | + 16:48 |
| 22 | ![]() | Primoz Roglic | Team Jumbo – Visma (TJV) | + 16:48 |
| 23 | ![]() | Richie Porte | Trek – Segafredo (TFS) | + 16:48 |
| 24 | ![]() | Mikel Landa Meana | Bahrain-McLaren (TBM) | + 16:48 |
| 25 | ![]() | Enric Mas Nicolau | Movistar Team (MOV) | + 16:48 |
| 26 | ![]() | Adam Yates | Mitchelton-Scott (MTS) | + 16:48 |
| 27 | ![]() | Rigoberto Uran Uran | EF Pro Cycling (EF1) | + 16:48 |
| 28 | ![]() | Alejandro Valverde Belmonte | Movistar Team (MOV) | + 16:48 |
| 29 | ![]() | Guillaume Martin | Cofidis Solutions Credits (COF) | + 16:48 |
| 30 | ![]() | Tom Dumoulin | Team Jumbo – Visma (TJV) | + 16:55 |
| 31 | ![]() | Damiano Caruso | Bahrain-McLaren (TBM) | + 16:55 |
| 32 | ![]() | Daniel Felipe Martinez Poveda | EF Pro Cycling (EF1) | + 16:59 |
| 33 | ![]() | Wout van Aert | Team Jumbo – Visma (TJV) | + 17:17 |
| 34 | ![]() | Sepp Kuss | Team Jumbo – Visma (TJV) | + 17:17 |
| 35 | ![]() | Kenny Elissonde | Trek – Segafredo (TFS) | + 17:19 |
| 36 | ![]() | Nairo Quintana | Team Arkea-Samsic (PCB) | + 17:23 |
| 37 | ![]() | Luis Leon Sanchez Gil | Astana Pro Team (AST) | + 17:23 |
| 38 | ![]() | Marc Soler | Movistar Team (MOV) | + 17:23 |
| 39 | ![]() | Thomas De Gendt | Lotto-Soudal (LTS) | + 17:36 |
| 40 | ![]() | Ben Hermans | Israel Start-Up Nation (ISN) | + 17:36 |
| 41 | ![]() | Valentin Madouas | Groupama-FDJ (GFC) | + 17:45 |
| 42 | ![]() | Stefan Küng | Groupama-FDJ (GFC) | + 17:45 |
| 43 | ![]() | Nicolas Edet | Cofidis Solutions Credits (COF) | + 17:45 |
| 44 | ![]() | Mikael Cherel | Ag2R La Mondiale (ALM) | + 17:45 |
| 45 | ![]() | Thibaut Pinot | Groupama-FDJ (GFC) | + 17:45 |
| 46 | ![]() | Jan Polanc | UAE Team Emirates (UAD) | + 17:45 |
| 47 | ![]() | Gorka Izagirre Insausti | Astana Pro Team (AST) | + 17:45 |
| 48 | ![]() | Alexis Vuillermoz | Ag2R La Mondiale (ALM) | + 17:45 |
| 49 | ![]() | Rudy Molard | Groupama-FDJ (GFC) | + 17:45 |
| 50 | ![]() | Felix Großschartner | Bora-hansgrohe (BOH) | + 17:45 |
| 51 | ![]() | Pello Bilbao | Bahrain-McLaren (TBM) | + 17:45 |
| 52 | ![]() | Niklas Eg | Trek – Segafredo (TFS) | + 18:05 |
| 53 | ![]() | Dayer Quintana | Team Arkea-Samsic (PCB) | + 18:05 |
| 54 | ![]() | Hugh Carthy | EF Pro Cycling (EF1) | + 18:18 |
| 55 | ![]() | David De la Cruz Melgarejo | UAE Team Emirates (UAD) | + 18:41 |
| 56 | ![]() | Wouter Poels | Bahrain-McLaren (TBM) | + 19:04 |
| 57 | ![]() | Hugo Houle | Astana Pro Team (AST) | + 19:32 |
| 58 | ![]() | Matej Mohoric | Bahrain-McLaren (TBM) | + 19:32 |
| 59 | ![]() | Neilson Powless | EF Pro Cycling (EF1) | + 19:32 |
| 60 | ![]() | Kevin Ledanois | Team Arkea-Samsic (PCB) | + 19:58 |
| 61 | ![]() | Vegard Stake Laengen | UAE Team Emirates (UAD) | + 20:09 |
| 62 | ![]() | Daniel Oss | Bora-hansgrohe (BOH) | + 20:14 |
| 63 | ![]() | Dario Cataldo | Movistar Team (MOV) | + 20:14 |
| 64 | ![]() | George Bennett | Team Jumbo – Visma (TJV) | + 20:51 |
| 65 | ![]() | Robert Gesink | Team Jumbo – Visma (TJV) | + 21:44 |
| 66 | ![]() | Mikel Nieve Ituralde | Mitchelton-Scott (MTS) | + 21:44 |
| 67 | ![]() | Christopher Juul Jensen | Mitchelton-Scott (MTS) | + 21:44 |
| 68 | ![]() | Cyril Gautier | B&B Hotels – Vital Concept KTM (BVC) | + 24:42 |
| 69 | ![]() | Cyril Barthe | B&B Hotels – Vital Concept KTM (BVC) | + 24:42 |
| 70 | ![]() | Mathieu Burgaudeau | Total Direct Energie (TDE) | + 24:42 |
| 71 | ![]() | Ryan Gibbons | NTT Pro Cycling (NTT) | + 24:42 |
| 72 | ![]() | Bob Jungels | Deceuninck – Quick-Step (DQT) | + 24:42 |
| 73 | ![]() | Dylan Van Baarle | Team Ineos Grenadiers (INS) | + 24:42 |
| 74 | ![]() | Michael Schär | CCC Team (CCC) | + 24:42 |
| 75 | ![]() | Jens Keukeleire | EF Pro Cycling (EF1) | + 24:42 |
| 76 | ![]() | Esteban Chaves | Mitchelton-Scott (MTS) | + 24:42 |
| 77 | ![]() | Nelson Filipe Oliveira Santos Simoes | Movistar Team (MOV) | + 24:42 |
| 78 | ![]() | Alessandro De Marchi | CCC Team (CCC) | + 24:42 |
| 79 | ![]() | Emanuel Buchmann | Bora-hansgrohe (BOH) | + 24:42 |
| 80 | ![]() | Jesús Herrada Lopez | Cofidis Solutions Credits (COF) | + 24:42 |
| 81 | ![]() | Nans Peters | Ag2R La Mondiale (ALM) | + 24:42 |
| 82 | ![]() | Fabien Grellier | Total Direct Energie (TDE) | + 24:42 |
| 83 | ![]() | Joris Nieuwenhuis | Team Sunweb (SUN) | + 25:17 |
| 84 | ![]() | Marc Hirschi | Team Sunweb (SUN) | + 25:17 |
| 85 | ![]() | Pierre-Luc Périchon | Cofidis Solutions Credits (COF) | + 25:23 |
| 86 | ![]() | Jasper Stuyven | Trek – Segafredo (TFS) | + 26:24 |
| 87 | ![]() | Toms Skujins | Trek – Segafredo (TFS) | + 26:24 |
| 88 | ![]() | Mads Pedersen | Trek – Segafredo (TFS) | + 26:24 |
| 89 | ![]() | Tom Van Asbroeck | Israel Start-Up Nation (ISN) | + 27:27 |
| 90 | ![]() | Krists Neilands | Israel Start-Up Nation (ISN) | + 27:27 |
| 91 | ![]() | Nikias Arndt | Team Sunweb (SUN) | + 27:27 |
| 92 | ![]() | Nils Politt | Israel Start-Up Nation (ISN) | + 27:27 |
| 93 | ![]() | Clement Russo | Team Arkea-Samsic (PCB) | + 27:27 |
| 94 | ![]() | Lukas Pöstlberger | Bora-hansgrohe (BOH) | + 27:27 |
| 95 | ![]() | Jose Joaquin Rojas Gil | Movistar Team (MOV) | + 27:27 |
| 96 | ![]() | Daryl Impey | Mitchelton-Scott (MTS) | + 27:27 |
| 97 | ![]() | Anthony Turgis | Total Direct Energie (TDE) | + 27:27 |
| 98 | ![]() | Matthieu Ladagnous | Groupama-FDJ (GFC) | + 27:27 |
| 99 | ![]() | Marco Marcato | UAE Team Emirates (UAD) | + 27:27 |
| 100 | ![]() | Jack Bauer | Mitchelton-Scott (MTS) | + 27:27 |
| 101 | ![]() | Geoffrey Soupe | Total Direct Energie (TDE) | + 27:27 |
| 102 | ![]() | Sonny Colbrelli | Bahrain-McLaren (TBM) | + 27:27 |
| 103 | ![]() | Connor Swift | Team Arkea-Samsic (PCB) | + 27:27 |
| 104 | ![]() | Guy Niv | Israel Start-Up Nation (ISN) | + 27:27 |
| 105 | ![]() | Daniel Martin | Israel Start-Up Nation (ISN) | + 27:27 |
| 106 | ![]() | Michael Valgren Andersen | NTT Pro Cycling (NTT) | + 27:27 |
| 107 | ![]() | Kevin Reza | B&B Hotels – Vital Concept KTM (BVC) | + 27:27 |
| 108 | ![]() | Benoit Cosnefroy | Ag2R La Mondiale (ALM) | + 27:27 |
| 109 | ![]() | Maxime Chevalier | B&B Hotels – Vital Concept KTM (BVC) | + 27:27 |
| 110 | ![]() | Oliver Naesen | Ag2R La Mondiale (ALM) | + 27:27 |
| 111 | ![]() | Tim Declercq | Deceuninck – Quick-Step (DQT) | + 27:27 |
| 112 | ![]() | Remi Cavagna | Deceuninck – Quick-Step (DQT) | + 27:27 |
| 113 | ![]() | Edvald Boasson Hagen | NTT Pro Cycling (NTT) | + 27:27 |
| 114 | ![]() | Greg Van Avermaet | CCC Team (CCC) | + 27:27 |
![]() | David Gaudu | Groupama-FDJ (GFC) | ausgeschieden |

























