| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Derek Gee | Israel-Premier Tech | 15:21:23 | |
| 2 | Davide Piganzoli | Team Polti VisitMalta | + 35 | + 35 |
| 3 | Magnus Cort | Uno-X Mobility | + 38 | + 38 |
| 4 | Ivan Cobo | Equipo Kern Pharma | + 01:15 | + 01:15 |
| 5 | Eric Fagundez | Burgos Burpellet BH | + 01:34 | + 01:34 |
| 6 | Sergio Chumil | Burgos Burpellet BH | + 01:53 | + 01:53 |
| 7 | Jefferson Cepeda | Movistar Team | + 01:56 | + 01:56 |
| 8 | Viktor Soenens | Soudal Quick-Step | + 01:59 | + 01:59 |
| 9 | Mauri Vansevenant | Soudal Quick-Step | + 02:02 | + 02:02 |
| 10 | Johannes Kulset | Uno-X Mobility | + 02:22 | + 02:22 |
| 11 | David Peña Jesus | AP Hotels & Resorts - Tavira - SC Farense | + 02:51 | + 02:51 |
| 12 | Maxime Decomble | Groupama-FDJ | + 03:05 | + 03:05 |
| 13 | Txomin Juaristi | Euskaltel-Euskadi | + 03:06 | + 03:06 |
| 14 | Carlos Canal | Movistar Team | + 03:14 | + 03:14 |
| 15 | Luca Paletti | VF Group-Bardiani CSF-Faizanè | + 03:23 | + 03:23 |
| 16 | Ruben Fernandez | Anicolor - Tien21 Cycling Team | + 03:37 | + 03:37 |
| 17 | Josh Burnett | Burgos Burpellet BH | + 03:41 | + 03:41 |
| 18 | Samuel Fernández Garcia | Caja Rural-Seguros RGA | + 04:43 | + 04:43 |
| 19 | Urko Berrade | Equipo Kern Pharma | + 04:54 | + 04:54 |
| 20 | Jokin Murguialday | Euskaltel-Euskadi | + 05:07 | + 05:07 |
| 21 | Simon Dalby | Uno-X Mobility | + 05:36 | + 05:36 |
| 22 | Alejandro Callejas | Petrolike | + 06:36 | + 06:36 |
| 23 | Jakob Fuglsang | Israel-Premier Tech | + 06:53 | + 06:53 |
| 24 | Keegan Swirbul | Efapel Cycling | + 07:06 | + 07:06 |
| 25 | Clément Braz Afonso | Groupama-FDJ | + 07:21 | + 07:21 |
| 26 | Luca Covili | VF Group-Bardiani CSF-Faizanè | + 07:45 | + 07:45 |
| 27 | Harrison Wood | Anicolor - Tien21 Cycling Team | + 08:56 | + 08:56 |
| 28 | Nelson Oliveira | Movistar Team | + 09:27 | + 09:27 |
| 29 | Fredrik Dversnes | Uno-X Mobility | + 09:36 | + 09:36 |
| 30 | Rémy Rochas | Groupama-FDJ | + 09:47 | + 09:47 |
| 31 | Jonathan Caicedo | Petrolike | + 09:52 | + 09:52 |
| 32 | Alex Tolio | VF Group-Bardiani CSF-Faizanè | + 09:57 | + 09:57 |
| 33 | James Knox | Soudal Quick-Step | + 10:02 | + 10:02 |
| 34 | Marco Frigo | Israel-Premier Tech | + 10:37 | + 10:37 |
| 35 | Pedro Pinto | Efapel Cycling | + 10:43 | + 10:43 |
| 36 | Mats Wenzel | Equipo Kern Pharma | + 11:13 | + 11:13 |
| 37 | Lucas Lopes | Radio Popular - Paredes - Boavista | + 12:23 | + 12:23 |
| 38 | Alessandro Tonelli | Team Polti VisitMalta | + 12:32 | + 12:32 |
| 39 | Francisco Peñuela | Caja Rural-Seguros RGA | + 12:37 | + 12:37 |
| 40 | Julen Arriola-bengoa | Caja Rural-Seguros RGA | + 13:47 | + 13:47 |
| 41 | Hugo Houle | Israel-Premier Tech | + 14:03 | + 14:03 |
| 42 | Jose Marin Aragón | Illes Balears Arabay Cycling | + 14:32 | + 14:32 |
| 43 | Diego Pescador | Movistar Team | + 14:41 | + 14:41 |
| 44 | Alex Diaz | Caja Rural-Seguros RGA | + 15:01 | + 15:01 |
| 45 | Alvaro Sagrado Perez | Illes Balears Arabay Cycling | + 15:28 | + 15:28 |
| 46 | Jordi Lopez | Euskaltel-Euskadi | + 15:31 | + 15:31 |
| 47 | Thomas Pesenti | Soudal Quick-Step | + 17:15 | + 17:15 |
| 48 | Rémi Daumas | Groupama-FDJ | + 20:57 | + 20:57 |
| 49 | Alex Molenaar | Caja Rural-Seguros RGA | + 21:14 | + 21:14 |
| 50 | Matteo Scalco | VF Group-Bardiani CSF-Faizanè | + 21:16 | + 21:16 |
| 51 | Nicolas Alustiza | Euskaltel-Euskadi | + 21:20 | + 21:20 |
| 52 | Joaquim Silva | Efapel Cycling | + 21:36 | + 21:36 |
| 53 | Jon Agirre | Euskaltel-Euskadi | + 21:40 | + 21:40 |
| 54 | Jambaljamts Sainbayar | Burgos Burpellet BH | + 22:37 | + 22:37 |
| 55 | Jorge Arcas | Movistar Team | + 22:43 | + 22:43 |
| 56 | Raul Rota | Radio Popular - Paredes - Boavista | + 23:12 | + 23:12 |
| 57 | Mirco Maestri | Team Polti VisitMalta | + 23:29 | + 23:29 |
| 58 | Helder Goncalves | Radio Popular - Paredes - Boavista | + 24:16 | + 24:16 |
| 59 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | + 24:35 | + 24:35 |
| 60 | Koller Løland Sakarias | Uno-X Mobility | + 25:21 | + 25:21 |
| 61 | Daniel Cavia | Burgos Burpellet BH | + 25:51 | + 25:51 |
| 62 | Jan Castellon | Caja Rural-Seguros RGA | + 25:53 | + 25:53 |
| 63 | Antonio Prieto de Luna Jose | Petrolike | + 27:56 | + 27:56 |
| 64 | Andrea Pietrobon | Team Polti VisitMalta | + 29:18 | + 29:18 |
| 65 | Fernando Tercero | Team Polti VisitMalta | + 29:22 | + 29:22 |
| 66 | Simon Clarke | Israel-Premier Tech | + 29:27 | + 29:27 |
| 67 | Rafael Barbas | Tavfer - Ovos Matinados - Mortágua | + 29:41 | + 29:41 |
| 68 | Pablo Gonzalez Asier | Illes Balears Arabay Cycling | + 30:13 | + 30:13 |
| 69 | Pedro Silva | Anicolor - Tien21 Cycling Team | + 30:16 | + 30:16 |
| 70 | Delio Fernandez | AP Hotels & Resorts - Tavira - SC Farense | + 30:28 | + 30:28 |
| 71 | Cesar Fonte | Radio Popular - Paredes - Boavista | + 31:01 | + 31:01 |
| 72 | Max Bock | Groupama-FDJ | + 31:42 | + 31:42 |
| 73 | Filippo Turconi | VF Group-Bardiani CSF-Faizanè | + 32:31 | + 32:31 |
| 74 | Gauthier Servranckx | Soudal Quick-Step | + 33:13 | + 33:13 |
| 75 | Federico Savino | Soudal Quick-Step | + 33:20 | + 33:20 |
| 76 | Goncalo Carvalho | Tavfer - Ovos Matinados - Mortágua | + 33:43 | + 33:43 |
| 77 | Mikel Retegi | Equipo Kern Pharma | + 33:44 | + 33:44 |
| 78 | Diego Sevilla | Team Polti VisitMalta | + 34:04 | + 34:04 |
| 79 | Giovanni Lonardi | Team Polti VisitMalta | + 34:13 | + 34:13 |
| 80 | Ander Ganzabal | Euskaltel-Euskadi | + 35:02 | + 35:02 |
| 81 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | + 35:10 | + 35:10 |
| 82 | Xavier Cañellas | Anicolor - Tien21 Cycling Team | + 35:48 | + 35:48 |
| 83 | Juan Prieto José | Petrolike | + 35:55 | + 35:55 |
| 84 | Unai Esparza | Illes Balears Arabay Cycling | + 36:31 | + 36:31 |
| 85 | Antonio Pedrero | Movistar Team | + 37:27 | + 37:27 |
| 86 | Sinuhé Fernandez | Burgos Burpellet BH | + 38:04 | + 38:04 |
| 87 | André Carvalho | Efapel Cycling | + 38:04 | + 38:04 |
| 88 | Urianstad Bugge Martin | Uno-X Mobility | + 38:09 | + 38:09 |
| 89 | Rafael Reis | Anicolor - Tien21 Cycling Team | + 39:13 | + 39:13 |
| 90 | Pau Marti | Israel-Premier Tech | + 41:39 | + 41:39 |
| 91 | Cesar Macias | Petrolike | + 41:41 | + 41:41 |
| 92 | Ander Okamika | Burgos Burpellet BH | + 42:55 | + 42:55 |
| 93 | Filippo D'aiuto | Petrolike | + 43:39 | + 43:39 |
| 94 | Ailetz Lasa | AP Hotels & Resorts - Tavira - SC Farense | + 44:55 | + 44:55 |
| 95 | Pau Llaneras | Illes Balears Arabay Cycling | + 45:08 | + 45:08 |
| 96 | Unai Aznar | Equipo Kern Pharma | + 45:33 | + 45:33 |
| 97 | Gonzalo Ariño Bolinches | Illes Balears Arabay Cycling | + 45:35 | + 45:35 |
| 98 | Victor Martinez Garcia | Anicolor - Tien21 Cycling Team | + 45:49 | + 45:49 |
| 99 | Artem Nych | Anicolor - Tien21 Cycling Team | + 49:05 | + 49:05 |
| 100 | Daniel Dias | Radio Popular - Paredes - Boavista | + 53:31 | + 53:31 |
| 101 | Santiago Mesa | Efapel Cycling | + 54:19 | + 54:19 |
| 102 | Pedro Castro Pinto | Efapel Cycling | + 55:01 | + 55:01 |
| 103 | Alberto Álvarez | Radio Popular - Paredes - Boavista | + 58:45 | + 58:45 |
| 104 | Daniel Lima | Israel-Premier Tech | + 01:00:31 | + 01:00:31 |
| 105 | Miguel Salgueiro | AP Hotels & Resorts - Tavira - SC Farense | + 01:00:56 | + 01:00:56 |
| 106 | Guilherme Mestre | AP Hotels & Resorts - Tavira - SC Farense | + 01:02:48 | + 01:02:48 |
| 107 | Lois Dejesus | Tavfer - Ovos Matinados - Mortágua | + 01:10:53 | + 01:10:53 |
| 108 | Antonio Barbio | Tavfer - Ovos Matinados - Mortágua | + 01:25:04 | + 01:25:04 |