Stage 2
19 Feb 2026
Stage result
- 1
Paul SeixasDecathlon CMA CGM Team3:49:50 - 2
Juan Ayuso PesqueraLidl - Treks.t. - 3
Joao Pedro Gonçalves AlmeidaUAE Team Emirates XRG+0:01 - 4
Oscar OnleyNetcompany INEOS+0:04
- 5
Matthew RiccitelloDecathlon CMA CGM Team+0:06 - 6
Daniel Felipe Martinez PovedaRed Bull - Bora - Hansgrohe+0:22 - 7APAlessandro PinarelloNSN Cycling Team+0:29
- 8
Yannis VoisardTudor Pro Cycling Team+0:29 - 9
Kévin VauquelinNetcompany INEOS+0:29 - 10
Thomas GloagPinarello-Q36.5 Pro Cycling Team+0:31 - 11
Florian LipowitzRed Bull - Bora - Hansgrohe+0:31 - 12JFJuan Felipe Rodriguez ContrerasEF Education - EasyPost+0:34
- 13
Thymen ArensmanNetcompany INEOS+0:34 - 14MSMaximilian SchachmannSoudal Quick-Step+0:34
- 15
Brandon McnultyUAE Team Emirates XRG+0:37 - 16
Felix EngelhardtTeam Jayco AlUla+0:52 - 17JMJuan Martinez HuertasTeam Picnic PostNL+0:55
- 18
Julian AlaphilippeTudor Pro Cycling Team+0:59
- 19
Jarno WidarLotto Intermarché+1:02 - 20
António Tomas MorgadoUAE Team Emirates XRG+1:13 - 21
Fabio ChristenPinarello-Q36.5 Pro Cycling Team+1:13 - 22DGDiogo GonçalvesEfapel Cycling+1:24
- 23
Artem NychAnicolor/Campicarn+1:44
- 24
Dylan Van BaarleSoudal Quick-Step+2:04 - 25ASAfonso SilvaTeam Tavira /Crédito Agricola+2:04
- 26
Darren RaffertyEF Education - EasyPost+2:04 - 27
Hector Alvarez MartinezLidl-Trek Future Racing+2:04 - 28EDEmanuel DuarteCredibom / La Alumínios / Marcos Car+2:04
- 29
Felix GrossschartnerUAE Team Emirates XRG+2:04 - 30
David De La Cruz MelgarejoPinarello-Q36.5 Pro Cycling Team+2:09 - 31
Xabier Mikel Azparren IrurzunPinarello-Q36.5 Pro Cycling Team+2:24 - 32
Samuele BattistellaEF Education - EasyPost+2:26 - 33CMCarson MilesAnicolor/Campicarn+2:35
- 34
Koen BouwmanTeam Jayco AlUla+2:35 - 35
Jan TratnikSlovenia+2:38 - 36DDDavid Dominguez VilchezFeira Dos Sofás - Boavista+2:54
- 37
Edward PlanckaertAlpecin-Premier Tech+2:54
- 38
Liam SlockLotto Intermarché+2:54 - 39
Alex MolenaarCaja Rural-Seguros RGA+2:54 - 40
Jakub OtrubaCaja Rural-Seguros RGA+2:54 - 41MFMarco FrigoNSN Cycling Team+3:10
- 42
Lennard KämnaLidl - Trek+3:24 - 43DDDuarte DominguesCredibom / La Alumínios / Marcos Car+3:50
- 44ACAdrian Camilo Bustamante RudaGi Group Holding - Simoldes - Udo+3:58
- 45JSJoaquim SilvaEfapel Cycling+4:04
- 46LLLucas LopesEfapel Cycling+4:11
- 47RCRui CarvalhoGi Group Holding - Simoldes - Udo+4:11
- 48
Alexis GuerinAnicolor/Campicarn+5:00
- 49VIViacheslav IvanovFeirense - Beeceler+5:04
- 50
Colby SimmonsEF Education - EasyPost+5:06 - 51
Johannes Staune-MittetDecathlon CMA CGM Team+5:06
- 52
Harrison WoodFeirense - Beeceler+5:18
- 53OROscar Rota RusFeira Dos Sofás - Boavista+5:25
- 54
Andrea VendrameTeam Jayco AlUla+5:29 - 55
Max PooleTeam Picnic PostNL+5:39 - 56
Jaume Guardeño RomaCaja Rural-Seguros RGA+5:39 - 57
Lennert BelmansAlpecin-Premier Tech+5:39 - 58JCJosé Carlos Prates Neves FernandesGi Group Holding - Simoldes - Udo+5:50
- 59GCGonçalo CarvalhoTavfer-Ovos Matinados-Mortágua+5:50
- 60GTGonçalo TavaresEfapel Cycling+5:50
- 61
Gorka Sorarrain AgirrezabalaCaja Rural-Seguros RGA+5:50 - 62
Christopher JensenTeam Jayco AlUla+5:58 - 63
Tobias BayerAlpecin-Premier Tech+5:58 - 64
Roland ThalmannTudor Pro Cycling Team+5:58
- 65FFFilipe FranciscoAviludo - Louletano - Loulé+6:27
- 66
Luca Van BovenLotto Intermarché+6:27 - 67
André CarvalhoAviludo - Louletano - Loulé+6:27 - 68DBDiogo BarbosaTeam Tavira /Crédito Agricola+7:20
- 69
Ruben FernandezAnicolor/Campicarn+7:57 - 70
Carlos Verona QuintanillaLidl - Trek+8:09 - 71
Stefan KüngTudor Pro Cycling Team+8:38 - 72PSPedro SilvaFeira Dos Sofás - Boavista+8:38
- 73
Kasper AsgreenEF Education - EasyPost+10:33 - 74
Paul MagnierSoudal Quick-Step+10:33 - 75
Marijn Van Den BergEF Education - EasyPost+10:33 - 76FVFloris Van TrichtNSN Cycling Team+10:33
- 77JLJordan LabrosseDecathlon CMA CGM Team+10:33
- 78
Stan DewulfDecathlon CMA CGM Team+10:33
- 79PLPablo Lospitao GonzalezCaja Rural-Seguros RGA+10:33
- 80
Oliver NaesenDecathlon CMA CGM Team+10:33 - 81
Yves LampaertSoudal Quick-Step+10:33 - 82JVJens VerbruggheNSN Development Team+10:33
- 83
Hugo HofstetterNSN Cycling Team+10:33
- 84
Sean FlynnTeam Picnic PostNL+10:33 - 85
Toms SkujinsLidl - Trek+10:33 - 86
Ivo OliveiraUAE Team Emirates XRG+11:23 - 87
Filippo GannaNetcompany INEOS+12:09 - 88
Bob JungelsNetcompany INEOS+12:09 - 89HNHugo NunesCredibom / La Alumínios / Marcos Car+12:09
- 90RBRafael BarbasTavfer-Ovos Matinados-Mortágua+12:09
- 91
Emils LiepinsPinarello-Q36.5 Pro Cycling Team+12:09
- 92
Sander De PestelDecathlon CMA CGM Team+12:12 - 93
Gianni VermeerschRed Bull - Bora - Hansgrohe+12:13
- 94
Arnaud De LieLotto Intermarché+12:37 - 95
Rui Filipe Alves OliveiraUAE Team Emirates XRG+12:37 - 96
Rotem TeneNSN Cycling Team+14:29 - 97
Huub ArtzLotto Intermarché+14:29 - 98AAAndrey AndréGi Group Holding - Simoldes - Udo+14:42
- 99
Dries De BondtTeam Jayco AlUla+15:58
- 100
Dries Van GestelSoudal Quick-Step+15:58 - 101ALAiletz Lasa LizarragaTeam Tavira /Crédito Agricola+15:58
- 102GMGuilherme MestreTeam Tavira /Crédito Agricola+15:58
- 103
Carlos Ivan Oyarzun GuiñezAviludo - Louletano - Loulé+15:58 - 104
Iúri LeitãoCaja Rural-Seguros RGA+15:58 - 105
Luc WirtgenTudor Pro Cycling Team+15:58 - 106
Jakob SöderqvistLidl - Trek+15:58 - 107
Abel Balderstone RoumensCaja Rural-Seguros RGA+15:58 - 108
Noah HobbsEF Education - EasyPost+15:58 - 109CLCláudio LealAviludo - Louletano - Loulé+15:58
- 110RRRúben RodriguesFeira Dos Sofás - Boavista+15:58
- 111FMFrancisco MoraisTavfer-Ovos Matinados-Mortágua+15:58
- 112
Tim Torn TeutenbergLidl - Trek+15:58 - 113DVDaniel ViegasAviludo - Louletano - Loulé+15:58
- 114PPPedro PintoGi Group Holding - Simoldes - Udo+15:58
- 115ARAndré RibeiroGi Group Holding - Simoldes - Udo+15:58
- 116
Frederik FrisonPinarello-Q36.5 Pro Cycling Team+15:58 - 117KSKeegam SwirbulEfapel Cycling+15:58
- 118
Tomas ContteAviludo - Louletano - Loulé+15:58 - 119
Pascal AckermannTeam Jayco AlUla+15:58 - 120
Enzo LeijnseAnicolor/Campicarn+15:58 - 121
Luca MozzatoTudor Pro Cycling Team+16:18 - 122FCFábio CostaFeira Dos Sofás - Boavista+16:18
- 123TATiago AntunesEfapel Cycling+16:34
- 124
Luca GiaimiUAE Team Emirates XRG+18:02 - 125
Jonathan VervenneSoudal Quick-Step+18:02 - 126BSBruno SilvaTavfer-Ovos Matinados-Mortágua+18:02
- 127
Joshua GiddingsLotto Intermarché+18:02 - 128RARodrigo AlvesTeam Tavira+18:02
- 129
Marco HallerTudor Pro Cycling Team+18:02
- 130JMJosé MoreiraGi Group Holding - Simoldes - Udo+18:02
- 131FCFrancisco CamposTeam Tavira /Crédito Agricola+18:02
- 132
Nico DenzRed Bull - Bora - Hansgrohe+19:02 - 133
Jasper StuyvenSoudal Quick-Step+19:02 - 134
Jasper PhilipsenAlpecin-Premier Tech+19:02 - 135
Jordi MeeusRed Bull - Bora - Hansgrohe+19:02 - 136
Cedric BeullensLotto Intermarché+19:02 - 137
Jesus David Peña JimenezEfapel Cycling+19:02 - 138JMJoão MartinsCredibom / La Alumínios / Marcos Car+19:02
- 139
Johan Price PejtersenAlpecin-Premier Tech+19:02 - 140
Arne MaritRed Bull - Bora - Hansgrohe+19:02
- 141
Laurens De PlusNetcompany INEOS+19:02
- 142IBIker Bonillo MartinFeira Dos Sofás - Boavista+19:02
- 143MDMilan De CeusterDevelopment Team Picnic PostNL+19:02
- 144
Pavel BittnerTeam Picnic PostNL+19:02 - 145
Oded KogutNSN Cycling Team+19:02 - 146
Rafael ReisAnicolor/Campicarn+19:02 - 147SMSantiago Mesa PietralungaAnicolor/Campicarn+19:02
- 148
John DegenkolbTeam Picnic PostNL+19:02 - 149
Kim Alexander HeidukNetcompany INEOS+19:02 - 150DPDiogo PintoCredibom / La Alumínios / Marcos Car+19:02
- 151
German Nicolas Tivani PerezAviludo - Louletano - Loulé+19:07 - 152
Kaden Alexander GrovesAlpecin-Premier Tech+19:07 - 153
Matteo MoschettiPinarello-Q36.5 Pro Cycling Team+19:09 - 154JSJoão SilvaFeira Dos Sofás - Boavista+20:05
- 155
Diogo NarcisoCredibom / La Alumínios / Marcos Car+28:45 - 156VCVictor Cesar De PaulaFeirense - Beeceler+28:45
- 157GMGuilherme MesquitaFeirense - Beeceler+28:45
- 158JOJoão OliveiraCredibom / La Alumínios / Marcos Car+28:45
- 159PAPedro AndradeFeirense - Beeceler+28:45
- 160LMLeangel MenesesTavfer-Ovos Matinados-Mortágua+28:45
- 161NCNoah CamposTeam Tavira /Crédito Agricola+28:45
- 162DDDaniel DiasTavfer-Ovos Matinados-Mortágua+28:45
- 163CMCésar MartingilTavfer-Ovos Matinados-Mortágua+28:45
- 164FPFrancisco PereiraFeirense - Beeceler+30:19
- 165AMAlexandre MontezFeirense - Beeceler+30:19
General classification
- 1
Juan Ayuso PesqueraLidl - Trek8:10:44 - 2
Paul SeixasDecathlon CMA CGM Teams.t. - 3
Joao Pedro Gonçalves AlmeidaUAE Team Emirates XRG+0:07 - 4
Oscar OnleyNetcompany INEOS+0:14
- 5
Matthew RiccitelloDecathlon CMA CGM Team+0:16 - 6
Daniel Felipe Martinez PovedaRed Bull - Bora - Hansgrohe+0:32 - 7
Kévin VauquelinNetcompany INEOS+0:39 - 8APAlessandro PinarelloNSN Cycling Team+0:39
- 9
Yannis VoisardTudor Pro Cycling Team+0:39 - 10
Thomas GloagPinarello-Q36.5 Pro Cycling Team+0:41 - 11
Florian LipowitzRed Bull - Bora - Hansgrohe+0:41 - 12MSMaximilian SchachmannSoudal Quick-Step+0:44
- 13
Brandon McnultyUAE Team Emirates XRG+0:44 - 14
Thymen ArensmanNetcompany INEOS+0:44 - 15JFJuan Felipe Rodriguez ContrerasEF Education - EasyPost+0:44
- 16
Felix EngelhardtTeam Jayco AlUla+1:02 - 17JMJuan Martinez HuertasTeam Picnic PostNL+1:05
- 18
Julian AlaphilippeTudor Pro Cycling Team+1:09
- 19
Jarno WidarLotto Intermarché+1:12 - 20
Fabio ChristenPinarello-Q36.5 Pro Cycling Team+1:21 - 21
António Tomas MorgadoUAE Team Emirates XRG+1:23 - 22DGDiogo GonçalvesEfapel Cycling+1:34
- 23
Artem NychAnicolor/Campicarn+1:54
- 24
Hector Alvarez MartinezLidl-Trek Future Racing+2:12 - 25ASAfonso SilvaTeam Tavira /Crédito Agricola+2:14
- 26EDEmanuel DuarteCredibom / La Alumínios / Marcos Car+2:14
- 27
Felix GrossschartnerUAE Team Emirates XRG+2:14 - 28
Darren RaffertyEF Education - EasyPost+2:14 - 29
Dylan Van BaarleSoudal Quick-Step+2:14 - 30
David De La Cruz MelgarejoPinarello-Q36.5 Pro Cycling Team+2:19 - 31
Xabier Mikel Azparren IrurzunPinarello-Q36.5 Pro Cycling Team+2:34 - 32
Samuele BattistellaEF Education - EasyPost+2:36 - 33CMCarson MilesAnicolor/Campicarn+2:45
- 34
Koen BouwmanTeam Jayco AlUla+2:45 - 35
Jan TratnikSlovenia+2:45 - 36
Alex MolenaarCaja Rural-Seguros RGA+3:04 - 37
Edward PlanckaertAlpecin-Premier Tech+3:04
- 38
Liam SlockLotto Intermarché+3:04 - 39
Jakub OtrubaCaja Rural-Seguros RGA+3:04 - 40DDDavid Dominguez VilchezFeira Dos Sofás - Boavista+3:04
- 41MFMarco FrigoNSN Cycling Team+3:20
- 42
Lennard KämnaLidl - Trek+3:34 - 43DDDuarte DominguesCredibom / La Alumínios / Marcos Car+4:00
- 44ACAdrian Camilo Bustamante RudaGi Group Holding - Simoldes - Udo+4:08
- 45JSJoaquim SilvaEfapel Cycling+4:14
- 46LLLucas LopesEfapel Cycling+4:21
- 47RCRui CarvalhoGi Group Holding - Simoldes - Udo+4:21
- 48
Alexis GuerinAnicolor/Campicarn+5:10
- 49VIViacheslav IvanovFeirense - Beeceler+5:12
- 50
Colby SimmonsEF Education - EasyPost+5:16 - 51
Johannes Staune-MittetDecathlon CMA CGM Team+5:16
- 52
Harrison WoodFeirense - Beeceler+5:28
- 53OROscar Rota RusFeira Dos Sofás - Boavista+5:35
- 54
Andrea VendrameTeam Jayco AlUla+5:39 - 55
Jaume Guardeño RomaCaja Rural-Seguros RGA+5:49 - 56
Max PooleTeam Picnic PostNL+5:49 - 57
Lennert BelmansAlpecin-Premier Tech+5:49 - 58GCGonçalo CarvalhoTavfer-Ovos Matinados-Mortágua+6:00
- 59GTGonçalo TavaresEfapel Cycling+6:00
- 60
Gorka Sorarrain AgirrezabalaCaja Rural-Seguros RGA+6:00 - 61JCJosé Carlos Prates Neves FernandesGi Group Holding - Simoldes - Udo+6:00
- 62
Tobias BayerAlpecin-Premier Tech+6:08 - 63
Roland ThalmannTudor Pro Cycling Team+6:08
- 64
Christopher JensenTeam Jayco AlUla+6:08 - 65FFFilipe FranciscoAviludo - Louletano - Loulé+6:37
- 66
Luca Van BovenLotto Intermarché+6:37 - 67
André CarvalhoAviludo - Louletano - Loulé+6:37 - 68DBDiogo BarbosaTeam Tavira /Crédito Agricola+7:30
- 69
Ruben FernandezAnicolor/Campicarn+8:07 - 70
Carlos Verona QuintanillaLidl - Trek+8:19 - 71
Stefan KüngTudor Pro Cycling Team+8:48 - 72PSPedro SilvaFeira Dos Sofás - Boavista+8:48
- 73
Paul MagnierSoudal Quick-Step+10:33 - 74
Toms SkujinsLidl - Trek+10:40 - 75JLJordan LabrosseDecathlon CMA CGM Team+10:41
- 76
Marijn Van Den BergEF Education - EasyPost+10:43 - 77
Oliver NaesenDecathlon CMA CGM Team+10:43 - 78PLPablo Lospitao GonzalezCaja Rural-Seguros RGA+10:43
- 79
Stan DewulfDecathlon CMA CGM Team+10:43
- 80
Kasper AsgreenEF Education - EasyPost+10:43 - 81
Hugo HofstetterNSN Cycling Team+10:43
- 82JVJens VerbruggheNSN Development Team+10:43
- 83FVFloris Van TrichtNSN Cycling Team+10:43
- 84
Yves LampaertSoudal Quick-Step+10:43 - 85
Ivo OliveiraUAE Team Emirates XRG+11:31 - 86HNHugo NunesCredibom / La Alumínios / Marcos Car+12:11
- 87
Emils LiepinsPinarello-Q36.5 Pro Cycling Team+12:19
- 88
Bob JungelsNetcompany INEOS+12:19 - 89
Filippo GannaNetcompany INEOS+12:19 - 90RBRafael BarbasTavfer-Ovos Matinados-Mortágua+12:19
- 91
Sander De PestelDecathlon CMA CGM Team+12:22 - 92
Gianni VermeerschRed Bull - Bora - Hansgrohe+12:23
- 93
Arnaud De LieLotto Intermarché+12:47 - 94
Rui Filipe Alves OliveiraUAE Team Emirates XRG+12:47 - 95
Sean FlynnTeam Picnic PostNL+13:18 - 96
Huub ArtzLotto Intermarché+14:39 - 97
Rotem TeneNSN Cycling Team+14:39 - 98AAAndrey AndréGi Group Holding - Simoldes - Udo+14:52
- 99ARAndré RibeiroGi Group Holding - Simoldes - Udo+16:07
- 100
Jakob SöderqvistLidl - Trek+16:08 - 101
Iúri LeitãoCaja Rural-Seguros RGA+16:08 - 102
Noah HobbsEF Education - EasyPost+16:08 - 103
Tim Torn TeutenbergLidl - Trek+16:08 - 104
Pascal AckermannTeam Jayco AlUla+16:08 - 105ALAiletz Lasa LizarragaTeam Tavira /Crédito Agricola+16:08
- 106
Dries Van GestelSoudal Quick-Step+16:08 - 107GMGuilherme MestreTeam Tavira /Crédito Agricola+16:08
- 108CLCláudio LealAviludo - Louletano - Loulé+16:08
- 109
Abel Balderstone RoumensCaja Rural-Seguros RGA+16:08 - 110RRRúben RodriguesFeira Dos Sofás - Boavista+16:08
- 111
Frederik FrisonPinarello-Q36.5 Pro Cycling Team+16:08 - 112
Carlos Ivan Oyarzun GuiñezAviludo - Louletano - Loulé+16:08 - 113FMFrancisco MoraisTavfer-Ovos Matinados-Mortágua+16:08
- 114DVDaniel ViegasAviludo - Louletano - Loulé+16:08
- 115
Dries De BondtTeam Jayco AlUla+16:08
- 116KSKeegam SwirbulEfapel Cycling+16:08
- 117PPPedro PintoGi Group Holding - Simoldes - Udo+16:08
- 118
Luc WirtgenTudor Pro Cycling Team+16:08 - 119
Enzo LeijnseAnicolor/Campicarn+16:08 - 120
Luca MozzatoTudor Pro Cycling Team+16:28 - 121FCFábio CostaFeira Dos Sofás - Boavista+16:28
- 122TATiago AntunesEfapel Cycling+16:44
- 123
Joshua GiddingsLotto Intermarché+18:12 - 124
Luca GiaimiUAE Team Emirates XRG+18:12 - 125FCFrancisco CamposTeam Tavira /Crédito Agricola+18:12
- 126
Marco HallerTudor Pro Cycling Team+18:12
- 127RARodrigo AlvesTeam Tavira+18:12
- 128
Jonathan VervenneSoudal Quick-Step+18:12 - 129
Jordi MeeusRed Bull - Bora - Hansgrohe+19:06 - 130
Pavel BittnerTeam Picnic PostNL+19:08 - 131IBIker Bonillo MartinFeira Dos Sofás - Boavista+19:09
- 132
Jasper PhilipsenAlpecin-Premier Tech+19:12 - 133
John DegenkolbTeam Picnic PostNL+19:12 - 134JMJoão MartinsCredibom / La Alumínios / Marcos Car+19:12
- 135
Arne MaritRed Bull - Bora - Hansgrohe+19:12
- 136
Kim Alexander HeidukNetcompany INEOS+19:12 - 137
Rafael ReisAnicolor/Campicarn+19:12 - 138
Cedric BeullensLotto Intermarché+19:12 - 139
Nico DenzRed Bull - Bora - Hansgrohe+19:12 - 140
Jesus David Peña JimenezEfapel Cycling+19:12 - 141
Laurens De PlusNetcompany INEOS+19:12
- 142
Jasper StuyvenSoudal Quick-Step+19:12 - 143MDMilan De CeusterDevelopment Team Picnic PostNL+19:12
- 144
Johan Price PejtersenAlpecin-Premier Tech+19:12 - 145SMSantiago Mesa PietralungaAnicolor/Campicarn+19:12
- 146
German Nicolas Tivani PerezAviludo - Louletano - Loulé+19:16 - 147
Kaden Alexander GrovesAlpecin-Premier Tech+19:17 - 148
Matteo MoschettiPinarello-Q36.5 Pro Cycling Team+19:19 - 149BSBruno SilvaTavfer-Ovos Matinados-Mortágua+19:19
- 150
Oded KogutNSN Cycling Team+19:32 - 151JMJosé MoreiraGi Group Holding - Simoldes - Udo+20:54
- 152JSJoão SilvaFeira Dos Sofás - Boavista+21:27
- 153DPDiogo PintoCredibom / La Alumínios / Marcos Car+22:26
- 154
Tomas ContteAviludo - Louletano - Loulé+22:44 - 155LMLeangel MenesesTavfer-Ovos Matinados-Mortágua+28:55
- 156VCVictor Cesar De PaulaFeirense - Beeceler+28:55
- 157CMCésar MartingilTavfer-Ovos Matinados-Mortágua+28:55
- 158JOJoão OliveiraCredibom / La Alumínios / Marcos Car+28:55
- 159PAPedro AndradeFeirense - Beeceler+28:55
- 160
Diogo NarcisoCredibom / La Alumínios / Marcos Car+28:55 - 161GMGuilherme MesquitaFeirense - Beeceler+28:55
- 162NCNoah CamposTeam Tavira /Crédito Agricola+28:55
- 163DDDaniel DiasTavfer-Ovos Matinados-Mortágua+28:55
- 164AMAlexandre MontezFeirense - Beeceler+30:29
- 165FPFrancisco PereiraFeirense - Beeceler+32:29
Points classification
- 1
Paul SeixasDecathlon CMA CGM Team25 - 2
Paul MagnierSoudal Quick-Step25 - 3
Juan Ayuso PesqueraLidl - Trek24 - 4
Jordi MeeusRed Bull - Bora - Hansgrohe20 - 5
Joao Pedro Gonçalves AlmeidaUAE Team Emirates XRG16 - 6
Pavel BittnerTeam Picnic PostNL16 - 7
Oscar OnleyNetcompany INEOS13
- 8
Jasper PhilipsenAlpecin-Premier Tech13 - 9
Matthew RiccitelloDecathlon CMA CGM Team10 - 10
Arnaud De LieLotto Intermarché10 - 11HNHugo NunesCredibom / La Alumínios / Marcos Car8
- 12
Daniel Felipe Martinez PovedaRed Bull - Bora - Hansgrohe8 - 13
Pascal AckermannTeam Jayco AlUla8 - 14APAlessandro PinarelloNSN Cycling Team6
- 15
Kaden Alexander GrovesAlpecin-Premier Tech6 - 16
Yannis VoisardTudor Pro Cycling Team4 - 17
John DegenkolbTeam Picnic PostNL4 - 18
Brandon McnultyUAE Team Emirates XRG3 - 19
Jan TratnikSlovenia3 - 20
Toms SkujinsLidl - Trek3 - 21IBIker Bonillo MartinFeira Dos Sofás - Boavista3
- 22
Kévin VauquelinNetcompany INEOS2 - 23
Fabio ChristenPinarello-Q36.5 Pro Cycling Team2 - 24
Hector Alvarez MartinezLidl-Trek Future Racing2 - 25VIViacheslav IvanovFeirense - Beeceler2
- 26JLJordan LabrosseDecathlon CMA CGM Team2
- 27
Ivo OliveiraUAE Team Emirates XRG2 - 28
Thomas GloagPinarello-Q36.5 Pro Cycling Team1 - 29
Rui Filipe Alves OliveiraUAE Team Emirates XRG1 - 30ARAndré RibeiroGi Group Holding - Simoldes - Udo1
- 31
German Nicolas Tivani PerezAviludo - Louletano - Loulé1
Mountains classification
- 1
Tomas ContteAviludo - Louletano - Loulé15 - 2
Paul SeixasDecathlon CMA CGM Team10 - 3
Juan Ayuso PesqueraLidl - Trek8 - 4
Joao Pedro Gonçalves AlmeidaUAE Team Emirates XRG6 - 5
Oscar OnleyNetcompany INEOS4
- 6
German Nicolas Tivani PerezAviludo - Louletano - Loulé4 - 7
Enzo LeijnseAnicolor/Campicarn3 - 8
Matthew RiccitelloDecathlon CMA CGM Team2 - 9VIViacheslav IvanovFeirense - Beeceler2
- 10
Gorka Sorarrain AgirrezabalaCaja Rural-Seguros RGA2 - 11HNHugo NunesCredibom / La Alumínios / Marcos Car2
- 12
Oliver NaesenDecathlon CMA CGM Team1 - 13JSJoão SilvaFeira Dos Sofás - Boavista1
Youth classification
- 1
Paul SeixasDecathlon CMA CGM Team8:10:44 - 2JMJuan Martinez HuertasTeam Picnic PostNL+1:05
- 3
Jarno WidarLotto Intermarché+1:12 - 4
António Tomas MorgadoUAE Team Emirates XRG+1:23 - 5
Hector Alvarez MartinezLidl-Trek Future Racing+2:12 - 6DDDuarte DominguesCredibom / La Alumínios / Marcos Car+4:00
- 7GTGonçalo TavaresEfapel Cycling+6:00
- 8
Paul MagnierSoudal Quick-Step+10:33 - 9PLPablo Lospitao GonzalezCaja Rural-Seguros RGA+10:43
- 10JVJens VerbruggheNSN Development Team+10:43
- 11RBRafael BarbasTavfer-Ovos Matinados-Mortágua+12:19
- 12AAAndrey AndréGi Group Holding - Simoldes - Udo+14:52
- 13ARAndré RibeiroGi Group Holding - Simoldes - Udo+16:07
- 14
Noah HobbsEF Education - EasyPost+16:08 - 15GMGuilherme MestreTeam Tavira /Crédito Agricola+16:08
- 16CLCláudio LealAviludo - Louletano - Loulé+16:08
- 17RRRúben RodriguesFeira Dos Sofás - Boavista+16:08
- 18PPPedro PintoGi Group Holding - Simoldes - Udo+16:08
- 19
Luca GiaimiUAE Team Emirates XRG+18:12 - 20RARodrigo AlvesTeam Tavira+18:12
- 21JMJoão MartinsCredibom / La Alumínios / Marcos Car+19:12
- 22MDMilan De CeusterDevelopment Team Picnic PostNL+19:12
- 23JMJosé MoreiraGi Group Holding - Simoldes - Udo+20:54
- 24GMGuilherme MesquitaFeirense - Beeceler+28:55
- 25NCNoah CamposTeam Tavira /Crédito Agricola+28:55