| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Tadej Pogacar | UAE Team Emirates | 83:38:56 | |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | + 06:17 | + 06:17 |
| 3 | Remco Evenepoel | Soudal Quick-Step | + 09:18 | + 09:18 |
| 4 | Joao Almeida | UAE Team Emirates | + 19:03 | + 19:03 |
| 5 | Mikel Landa | Soudal Quick-Step | + 20:06 | + 20:06 |
| 6 | Adam Yates | UAE Team Emirates | + 24:07 | + 24:07 |
| 7 | Carlos Rodriguez | INEOS Grenadiers | + 25:04 | + 25:04 |
| 8 | Matteo Jorgenson | Team Visma | Lease a Bike | + 26:34 | + 26:34 |
| 9 | Derek Gee | Israel-Premier Tech | + 27:21 | + 27:21 |
| 10 | Santiago Buitrago | Bahrain Victorious | + 29:03 | + 29:03 |
| 11 | Giulio Ciccone | Lidl-Trek | + 30:42 | + 30:42 |
| 12 | Simon Yates | Team Jayco-AlUla | + 39:04 | + 39:04 |
| 13 | Guillaume Martin | Cofidis | + 43:49 | + 43:49 |
| 14 | Felix Gall | Decathlon AG2R La Mondiale Team | + 46:12 | + 46:12 |
| 15 | Laurens de Plus | INEOS Grenadiers | + 46:24 | + 46:24 |
| 16 | Steff Cras | TotalEnergies | + 49:18 | + 49:18 |
| 17 | Richard Carapaz | EF Education-EasyPost | + 49:24 | + 49:24 |
| 18 | Jai Hindley | Red Bull-BORA-hansgrohe | + 57:04 | + 57:04 |
| 19 | Enric Mas | Movistar Team | + 01:11:05 | + 01:11:05 |
| 20 | Louis Meintjes | Intermarché-Wanty | + 01:11:50 | + 01:11:50 |
| 21 | Wilco Kelderman | Team Visma | Lease a Bike | + 01:23:11 | + 01:23:11 |
| 22 | Julien Bernard | Lidl-Trek | + 01:37:15 | + 01:37:15 |
| 23 | Javier Romo | Movistar Team | + 01:42:26 | + 01:42:26 |
| 24 | Carlos Verona | Lidl-Trek | + 01:47:13 | + 01:47:13 |
| 25 | Valentin Madouas | Groupama-FDJ | + 01:51:59 | + 01:51:59 |
| 26 | Ilan van Wilder | Soudal Quick-Step | + 01:54:30 | + 01:54:30 |
| 27 | Ben Healy | EF Education-EasyPost | + 01:56:12 | + 01:56:12 |
| 28 | Jordan Jegat | TotalEnergies | + 02:02:36 | + 02:02:36 |
| 29 | Egan Bernal | INEOS Grenadiers | + 02:03:50 | + 02:03:50 |
| 30 | Romain Bardet | Team dsm-firmenich PostNL | + 02:04:25 | + 02:04:25 |
| 31 | Jack Haig | Bahrain Victorious | + 02:11:33 | + 02:11:33 |
| 32 | Pavel Sivakov | UAE Team Emirates | + 02:14:21 | + 02:14:21 |
| 33 | Bruno Armirail | Decathlon AG2R La Mondiale Team | + 02:15:39 | + 02:15:39 |
| 34 | Christian Eiking Odd | Uno-X Mobility | + 02:18:34 | + 02:18:34 |
| 35 | Halland Johannessen Tobias | Uno-X Mobility | + 02:21:37 | + 02:21:37 |
| 36 | Cristian Rodriguez | ARKEA-B&B HOTELS | + 02:26:59 | + 02:26:59 |
| 37 | Bob Jungels | Red Bull-BORA-hansgrohe | + 02:29:05 | + 02:29:05 |
| 38 | Jakob Fuglsang | Israel-Premier Tech | + 02:31:42 | + 02:31:42 |
| 39 | Oscar Onley | Team dsm-firmenich PostNL | + 02:41:39 | + 02:41:39 |
| 40 | Warren Barguil | Team dsm-firmenich PostNL | + 02:42:13 | + 02:42:13 |
| 41 | Romain Grégoire | Groupama-FDJ | + 02:43:41 | + 02:43:41 |
| 42 | Geraint Thomas | INEOS Grenadiers | + 02:47:36 | + 02:47:36 |
| 43 | Wout Poels | Bahrain Victorious | + 02:54:52 | + 02:54:52 |
| 44 | Marc Soler | UAE Team Emirates | + 02:55:47 | + 02:55:47 |
| 45 | Toms Skujins | Lidl-Trek | + 02:57:02 | + 02:57:02 |
| 46 | Quentin Pacher | Groupama-FDJ | + 03:15:07 | + 03:15:07 |
| 47 | Johannes Kulset | Uno-X Mobility | + 03:17:42 | + 03:17:42 |
| 48 | Nicolas Prodhomme | Decathlon AG2R La Mondiale Team | + 03:19:25 | + 03:19:25 |
| 49 | Tiesj Benoot | Team Visma | Lease a Bike | + 03:26:11 | + 03:26:11 |
| 50 | Hugo Houle | Israel-Premier Tech | + 03:26:55 | + 03:26:55 |
| 51 | Nelson Oliveira | Movistar Team | + 03:33:54 | + 03:33:54 |
| 52 | Wout van Aert | Team Visma | Lease a Bike | + 03:35:56 | + 03:35:56 |
| 53 | Jonathan Castroviejo | INEOS Grenadiers | + 03:35:58 | + 03:35:58 |
| 54 | Michal Kwiatkowski | INEOS Grenadiers | + 03:36:34 | + 03:36:34 |
| 55 | Jonas Abrahamsen | Uno-X Mobility | + 03:38:58 | + 03:38:58 |
| 56 | Gregor Mühlberger | Movistar Team | + 03:40:17 | + 03:40:17 |
| 57 | Magnus Cort | Uno-X Mobility | + 03:41:57 | + 03:41:57 |
| 58 | Kevin Geniets | Groupama-FDJ | + 03:44:19 | + 03:44:19 |
| 59 | Neilson Powless | EF Education-EasyPost | + 03:45:24 | + 03:45:24 |
| 60 | Matteo Sobrero | Red Bull-BORA-hansgrohe | + 03:46:46 | + 03:46:46 |
| 61 | Jasper Stuyven | Lidl-Trek | + 03:47:39 | + 03:47:39 |
| 62 | Frank van den Broek | Team dsm-firmenich PostNL | + 03:48:02 | + 03:48:02 |
| 63 | Mathieu Burgaudeau | TotalEnergies | + 03:48:17 | + 03:48:17 |
| 64 | Jan Tratnik | Team Visma | Lease a Bike | + 03:48:34 | + 03:48:34 |
| 65 | David Gaudu | Groupama-FDJ | + 03:49:23 | + 03:49:23 |
| 66 | Krists Neilands | Israel-Premier Tech | + 03:52:08 | + 03:52:08 |
| 67 | Jan Hirt | Soudal Quick-Step | + 03:54:00 | + 03:54:00 |
| 68 | Rui Costa | EF Education-EasyPost | + 03:54:10 | + 03:54:10 |
| 69 | Kobe Goossens | Intermarché-Wanty | + 03:56:05 | + 03:56:05 |
| 70 | Bart Lemmen | Team Visma | Lease a Bike | + 03:56:28 | + 03:56:28 |
| 71 | Alex Aranburu | Movistar Team | + 03:57:53 | + 03:57:53 |
| 72 | Davide Formolo | Movistar Team | + 03:59:41 | + 03:59:41 |
| 73 | Stephen Williams | Israel-Premier Tech | + 03:59:57 | + 03:59:57 |
| 74 | Harold Tejada | Astana Qazaqstan Team | + 04:00:13 | + 04:00:13 |
| 75 | Nils Politt | UAE Team Emirates | + 04:03:21 | + 04:03:21 |
| 76 | Nans Peters | Decathlon AG2R La Mondiale Team | + 04:07:39 | + 04:07:39 |
| 77 | Georg Zimmermann | Intermarché-Wanty | + 04:07:59 | + 04:07:59 |
| 78 | Sean Quinn | EF Education-EasyPost | + 04:10:38 | + 04:10:38 |
| 79 | Oier Lazkano | Movistar Team | + 04:10:41 | + 04:10:41 |
| 80 | Tim Wellens | UAE Team Emirates | + 04:20:49 | + 04:20:49 |
| 81 | Victor Campenaerts | Lotto Dstny | + 04:23:21 | + 04:23:21 |
| 82 | Dorian Godon | Decathlon AG2R La Mondiale Team | + 04:23:27 | + 04:23:27 |
| 83 | Oliver Naesen | Decathlon AG2R La Mondiale Team | + 04:23:43 | + 04:23:43 |
| 84 | Christophe Laporte | Team Visma | Lease a Bike | + 04:26:27 | + 04:26:27 |
| 85 | Marco Haller | Red Bull-BORA-hansgrohe | + 04:26:52 | + 04:26:52 |
| 86 | Gianni Moscon | Soudal Quick-Step | + 04:26:54 | + 04:26:54 |
| 87 | Ryan Gibbons | Lidl-Trek | + 04:28:44 | + 04:28:44 |
| 88 | Paul Lapeira | Decathlon AG2R La Mondiale Team | + 04:28:54 | + 04:28:54 |
| 89 | Michael Matthews | Team Jayco-AlUla | + 04:30:03 | + 04:30:03 |
| 90 | Fabien Grellier | TotalEnergies | + 04:33:40 | + 04:33:40 |
| 91 | Kévin Vauquelin | ARKEA-B&B HOTELS | + 04:33:56 | + 04:33:56 |
| 92 | Thomas Gachignard | TotalEnergies | + 04:38:30 | + 04:38:30 |
| 93 | Mike Teunissen | Intermarché-Wanty | + 04:40:14 | + 04:40:14 |
| 94 | Simon Geschke | Cofidis | + 04:40:30 | + 04:40:30 |
| 95 | Brent van Moer | Lotto Dstny | + 04:42:29 | + 04:42:29 |
| 96 | Mathieu van der Poel | Alpecin-Deceuninck | + 04:44:05 | + 04:44:05 |
| 97 | Christopher Juul-jensen | Team Jayco-AlUla | + 04:45:12 | + 04:45:12 |
| 98 | Raúl García | ARKEA-B&B HOTELS | + 04:46:12 | + 04:46:12 |
| 99 | Axel Laurance | Alpecin-Deceuninck | + 04:46:25 | + 04:46:25 |
| 100 | Stefan Bissegger | EF Education-EasyPost | + 04:46:55 | + 04:46:55 |
| 101 | Clément Champoussin | ARKEA-B&B HOTELS | + 04:49:59 | + 04:49:59 |
| 102 | Clément Russo | Groupama-FDJ | + 04:51:24 | + 04:51:24 |
| 103 | Mattéo Vercher | TotalEnergies | + 04:55:14 | + 04:55:14 |
| 104 | Bryan Coquard | Cofidis | + 04:56:46 | + 04:56:46 |
| 105 | Rasmus Tiller | Uno-X Mobility | + 04:56:51 | + 04:56:51 |
| 106 | Anthony Turgis | TotalEnergies | + 04:59:48 | + 04:59:48 |
| 107 | Gianni Vermeersch | Alpecin-Deceuninck | + 05:02:07 | + 05:02:07 |
| 108 | Axel Zingle | Cofidis | + 05:04:30 | + 05:04:30 |
| 109 | Marijn van den Berg | EF Education-EasyPost | + 05:07:55 | + 05:07:55 |
| 110 | Nico Denz | Red Bull-BORA-hansgrohe | + 05:08:12 | + 05:08:12 |
| 111 | Nikias Arndt | Bahrain Victorious | + 05:08:28 | + 05:08:28 |
| 112 | Pascal Ackermann | Israel-Premier Tech | + 05:10:14 | + 05:10:14 |
| 113 | Biniam Girmay | Intermarché-Wanty | + 05:12:47 | + 05:12:47 |
| 114 | Piet Allegaert | Cofidis | + 05:16:14 | + 05:16:14 |
| 115 | Ben Turner | INEOS Grenadiers | + 05:17:11 | + 05:17:11 |
| 116 | Luka Mezgec | Team Jayco-AlUla | + 05:17:26 | + 05:17:26 |
| 117 | Hugo Page | Intermarché-Wanty | + 05:17:59 | + 05:17:59 |
| 118 | Laurenz Rex | Intermarché-Wanty | + 05:18:20 | + 05:18:20 |
| 119 | Arnaud de Lie | Lotto Dstny | + 05:19:56 | + 05:19:56 |
| 120 | Danny van Poppel | Red Bull-BORA-hansgrohe | + 05:22:16 | + 05:22:16 |
| 121 | Cédric Beullens | Lotto Dstny | + 05:23:17 | + 05:23:17 |
| 122 | John Degenkolb | Team dsm-firmenich PostNL | + 05:24:08 | + 05:24:08 |
| 123 | Luke Durbridge | Team Jayco-AlUla | + 05:26:37 | + 05:26:37 |
| 124 | Lenny Martinez | Groupama-FDJ | + 05:26:45 | + 05:26:45 |
| 125 | Yves Lampaert | Soudal Quick-Step | + 05:27:51 | + 05:27:51 |
| 126 | Silvan Dillier | Alpecin-Deceuninck | + 05:31:21 | + 05:31:21 |
| 127 | Matej Mohoric | Bahrain Victorious | + 05:33:22 | + 05:33:22 |
| 128 | Jasper Philipsen | Alpecin-Deceuninck | + 05:34:33 | + 05:34:33 |
| 129 | Sébastien Grignard | Lotto Dstny | + 05:36:52 | + 05:36:52 |
| 130 | Harm Vanhoucke | Lotto Dstny | + 05:37:11 | + 05:37:11 |
| 131 | Alexander Kristoff | Uno-X Mobility | + 05:39:42 | + 05:39:42 |
| 132 | Sandy Dujardin | TotalEnergies | + 05:40:58 | + 05:40:58 |
| 133 | Søren Wærenskjold | Uno-X Mobility | + 05:46:24 | + 05:46:24 |
| 134 | Robbe Ghys | Alpecin-Deceuninck | + 05:55:14 | + 05:55:14 |
| 135 | Dylan Groenewegen | Team Jayco-AlUla | + 05:57:41 | + 05:57:41 |
| 136 | Daniel Mclay | ARKEA-B&B HOTELS | + 05:58:08 | + 05:58:08 |
| 137 | Luca Mozzato | ARKEA-B&B HOTELS | + 05:59:36 | + 05:59:36 |
| 138 | Cees Bol | Astana Qazaqstan Team | + 06:08:11 | + 06:08:11 |
| 139 | Jarrad Drizners | Lotto Dstny | + 06:12:21 | + 06:12:21 |
| 140 | Davide Ballerini | Astana Qazaqstan Team | + 06:22:46 | + 06:22:46 |
| 141 | Mark Cavendish | Astana Qazaqstan Team | + 06:23:11 | + 06:23:11 |