| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Diego Ulissi | UAE Team Emirates | 15:43:13 | |
| 2 | Brandon Rivera | INEOS Grenadiers | + 06 | + 06 |
| 3 | Magnus Sheffield | INEOS Grenadiers | + 09 | + 09 |
| 4 | Felix Großschartner | UAE Team Emirates | + 11 | + 11 |
| 5 | Xandro Meurisse | Alpecin-Deceuninck | + 23 | + 23 |
| 6 | Adrien Maire | TdT-Unibet | + 23 | + 23 |
| 7 | Giulio Pellizzari | VF Group-Bardiani CSF-Faizanè | + 27 | + 27 |
| 8 | Rafal Majka | UAE Team Emirates | + 30 | + 30 |
| 9 | Marton Dina | ATT Investments | + 31 | + 31 |
| 10 | Riccardo Zoidl | Team Felt-Felbermayr | + 31 | + 31 |
| 11 | Welay Berhe | Team Jayco-AlUla | + 32 | + 32 |
| 12 | Jakub Otruba | ATT Investments | + 33 | + 33 |
| 13 | Colin Stüssi | Team Vorarlberg | + 34 | + 34 |
| 14 | Hermann Pernsteiner | Team Felt-Felbermayr | + 34 | + 34 |
| 15 | David Peña Jesus | Team Jayco-AlUla | + 37 | + 37 |
| 16 | Alex Tolio | VF Group-Bardiani CSF-Faizanè | + 01:10 | + 01:10 |
| 17 | Edward Dunbar | Team Jayco-AlUla | + 01:42 | + 01:42 |
| 18 | Davide de Pretto | Team Jayco-AlUla | + 01:51 | + 01:51 |
| 19 | Jan Christen | UAE Team Emirates | + 02:01 | + 02:01 |
| 20 | Jente Michels | Alpecin-Deceuninck | + 02:04 | + 02:04 |
| 21 | Martin Messner | WSA KTM Graz | + 02:04 | + 02:04 |
| 22 | Felix Engelhardt | Team Jayco-AlUla | + 02:19 | + 02:19 |
| 23 | Jannis Peter | Team Vorarlberg | + 02:20 | + 02:20 |
| 24 | Bakke Christophersen Cedrik | TdT-Unibet | + 02:38 | + 02:38 |
| 25 | Cole Kessler | Lidl-Trek Future Racing | + 02:49 | + 02:49 |
| 26 | Samuele Zoccarato | VF Group-Bardiani CSF-Faizanè | + 03:35 | + 03:35 |
| 27 | Nils Aebersold | Lidl-Trek Future Racing | + 03:54 | + 03:54 |
| 28 | Aj August | INEOS Grenadiers | + 05:17 | + 05:17 |
| 29 | Filippo Ganna | INEOS Grenadiers | + 06:24 | + 06:24 |
| 30 | Filip Reha | ATT Investments | + 08:15 | + 08:15 |
| 31 | Broholt Fougner Eivind | Team Coop-Repsol | + 10:21 | + 10:21 |
| 32 | Kim Heiduk | INEOS Grenadiers | + 12:02 | + 12:02 |
| 33 | Sebastian Schönberger | Team Felt-Felbermayr | + 12:05 | + 12:05 |
| 34 | Michael Boros | Elkov-Kasper | + 12:50 | + 12:50 |
| 35 | Federico Biagini | VF Group-Bardiani CSF-Faizanè | + 12:55 | + 12:55 |
| 36 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | + 12:55 | + 12:55 |
| 37 | Kamil Szymacha | Voster ATS Team | + 13:12 | + 13:12 |
| 38 | Paul Buschek | Tirol KTM Cycling Team | + 13:41 | + 13:41 |
| 39 | Tomas Pridal | Elkov-Kasper | + 13:48 | + 13:48 |
| 40 | Adam Toupalik | TdT-Unibet | + 14:30 | + 14:30 |
| 41 | Alessandro Tonelli | VF Group-Bardiani CSF-Faizanè | + 15:38 | + 15:38 |
| 42 | Miguel Heidemann | Team Felt-Felbermayr | + 18:27 | + 18:27 |
| 43 | Jaka Primozic | Team Hrinkow Advarics | + 19:07 | + 19:07 |
| 44 | Abram Stockman | TdT-Unibet | + 20:10 | + 20:10 |
| 45 | Mathieu Kockelmann | Team Lotto-Kern Haus PSD Bank | + 20:39 | + 20:39 |
| 46 | Owen Geleijn | TdT-Unibet | + 21:15 | + 21:15 |
| 47 | Omar Fraile | INEOS Grenadiers | + 21:36 | + 21:36 |
| 48 | Artur Sowinski | Voster ATS Team | + 21:45 | + 21:45 |
| 49 | Jonas Rapp | Team Hrinkow Advarics | + 21:51 | + 21:51 |
| 50 | Edward Ravasi | Team Hrinkow Advarics | + 24:20 | + 24:20 |
| 51 | Oscar Riesebeek | Alpecin-Deceuninck | + 24:50 | + 24:50 |
| 52 | Piotr Brozyna | Team Felt-Felbermayr | + 25:25 | + 25:25 |
| 53 | Tomas Kopecky | TdT-Unibet | + 28:25 | + 28:25 |
| 54 | Mario Gamper | Santic-Wibatech | + 28:45 | + 28:45 |
| 55 | Richard Riska | ATT Investments | + 28:55 | + 28:55 |
| 56 | Karel Camrda | ATT Investments | + 29:08 | + 29:08 |
| 57 | Lukas Rüegg | Team Vorarlberg | + 29:08 | + 29:08 |
| 58 | Thomas Tichler | WSA KTM Graz | + 29:16 | + 29:16 |
| 59 | Dario Cataldo | Lidl-Trek Future Racing | + 30:31 | + 30:31 |
| 60 | Sjoerd Bax | UAE Team Emirates | + 31:10 | + 31:10 |
| 61 | Jelle Johannink | TdT-Unibet | + 31:23 | + 31:23 |
| 62 | Storm Ingebrigtsen | Team Coop-Repsol | + 31:38 | + 31:38 |
| 63 | Michal Schuran | ATT Investments | + 32:00 | + 32:00 |
| 64 | Philipp Hofbauer | WSA KTM Graz | + 32:33 | + 32:33 |
| 65 | Louis Kitzki | Alpecin-Deceuninck | + 33:38 | + 33:38 |
| 66 | Lucas Plapp | Team Jayco-AlUla | + 33:48 | + 33:48 |
| 67 | Martin Barta | Team Lotto-Kern Haus PSD Bank | + 33:58 | + 33:58 |
| 68 | Laurens Sweeck | Alpecin-Deceuninck | + 34:51 | + 34:51 |
| 69 | Emanuel Zangerle | Team Felt-Felbermayr | + 35:27 | + 35:27 |
| 70 | Rui Oliveira | UAE Team Emirates | + 36:40 | + 36:40 |
| 71 | Stijn Appel | BEAT Cycling Club | + 36:58 | + 36:58 |
| 72 | Michael Leonard | INEOS Grenadiers | + 37:22 | + 37:22 |
| 73 | Jonas Messerschmidt | Santic-Wibatech | + 38:52 | + 38:52 |
| 74 | Alexander Konychev | Team Vorarlberg | + 40:04 | + 40:04 |
| 75 | Simen Evertsen-hegreberg | Tirol KTM Cycling Team | + 40:06 | + 40:06 |
| 76 | Michael Gogl | Alpecin-Deceuninck | + 40:47 | + 40:47 |
| 77 | Riccardo Verza | Team Hrinkow Advarics | + 40:54 | + 40:54 |
| 78 | Daniel Mraz | Elkov-Kasper | + 41:34 | + 41:34 |
| 79 | Jochem Kerckhaert | BEAT Cycling Club | + 41:42 | + 41:42 |
| 80 | Tom Wirtgen | Team Felt-Felbermayr | + 41:49 | + 41:49 |
| 81 | Matej Zahalka | Elkov-Kasper | + 42:05 | + 42:05 |
| 82 | Moran Vermeulen | Team Vorarlberg | + 42:30 | + 42:30 |
| 83 | Karsten Feldmann | Team Coop-Repsol | + 43:23 | + 43:23 |
| 84 | Trym Brennsæter | Tirol KTM Cycling Team | + 45:11 | + 45:11 |
| 85 | Antoni Olszar | Voster ATS Team | + 45:13 | + 45:13 |
| 86 | Jarno Grixa | P&S Metalltechnik Benotti | + 45:45 | + 45:45 |
| 87 | Mateusz Kostanski | Voster ATS Team | + 47:00 | + 47:00 |
| 88 | Michiel Coppens | BEAT Cycling Club | + 48:28 | + 48:28 |
| 89 | Niklas Behrens | Lidl-Trek Future Racing | + 48:36 | + 48:36 |
| 90 | Lukas Meiler | Team Vorarlberg | + 48:50 | + 48:50 |
| 91 | Benjamin Eckerstorfer | Tirol KTM Cycling Team | + 49:35 | + 49:35 |
| 92 | Matthias Gusner | WSA KTM Graz | + 50:04 | + 50:04 |
| 93 | Kalle Kvam | Team Coop-Repsol | + 50:39 | + 50:39 |
| 94 | Dominik Röber | P&S Metalltechnik Benotti | + 50:43 | + 50:43 |
| 95 | Tomas Obdrzalek | Elkov-Kasper | + 51:24 | + 51:24 |
| 96 | Linus Rosner | Santic-Wibatech | + 51:55 | + 51:55 |
| 97 | Stinus Kæmpe | WSA KTM Graz | + 52:30 | + 52:30 |
| 98 | Albert Gathemann | P&S Metalltechnik Benotti | + 53:00 | + 53:00 |
| 99 | Mauro Brenner | Team Lotto-Kern Haus PSD Bank | + 54:30 | + 54:30 |
| 100 | Luca Dreßler | Team Lotto-Kern Haus PSD Bank | + 56:09 | + 56:09 |
| 101 | Mil Morang | Team Lotto-Kern Haus PSD Bank | + 56:28 | + 56:28 |
| 102 | Jan Kaspar | ATT Investments | + 58:36 | + 58:36 |
| 103 | Anton Albrecht | P&S Metalltechnik Benotti | + 58:38 | + 58:38 |
| 104 | Matteo Milan | Lidl-Trek Future Racing | + 01:00:11 | + 01:00:11 |
| 105 | Cameron Rogers | Lidl-Trek Future Racing | + 01:00:49 | + 01:00:49 |
| 106 | Piotr Maslak | Voster ATS Team | + 01:04:15 | + 01:04:15 |
| 107 | Daan van Sintmaartensdijk | BEAT Cycling Club | + 01:04:21 | + 01:04:21 |
| 108 | Tobias Nolde | P&S Metalltechnik Benotti | + 01:04:24 | + 01:04:24 |
| 109 | Maximilian Kabas | Team Hrinkow Advarics | + 01:07:27 | + 01:07:27 |
| 110 | Martin Pedersen | Lidl-Trek Future Racing | + 01:08:02 | + 01:08:02 |
| 111 | Dominik Amann | Team Vorarlberg | + 01:09:40 | + 01:09:40 |