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