# 2021 Vuelta a España

The 2021 Vuelta a España was a three-week cycling race which took place in Spain between 14 August and 5 September 2021. It was the 76th edition of the Vuelta a España and the third and final grand tour of the 2021 men's road cycling season. The race departed from Burgos and finished in Santiago de Compostela.
The race was won by Primož Roglič of Team Jumbo–Visma, his third consecutive victory in the race. He became only the third rider to win the race in three successive years. He won by 4' 42", the largest margin of victory since Alex Zülle won by 5' 07" in 1997. He first took the red jersey on the first stage time trial before relinquishing the jersey to breakaway riders on two occasions. Roglič proceeded to win three more stages, stage 11 to Valdepeñas de Jaén, stage 17 to Lagos de Covadonga, and the final day's time trial in Santiago de Compostela, on his way to overall victory. In second place was Enric Mas of Movistar Team, who put in a consistent performance in the mountains throughout the race to become Roglič's closest rival. Jack Haig of Team Bahrain Victorious took the final step on the podium, finishing 7' 40" behind Roglič. Haig began the Vuelta as a domestique for Mikel Landa, but after Landa's struggles and eventual abandon, Haig became the team's leader. He moved up to third in the penultimate stage after successfully distancing the previous third-placed rider, Miguel Ángel López, with just over 50 kilometres (31 mi) on the stage. Haig then held on to third in the final day time trial, even extending his gap over fourth-placed Adam Yates (Ineos Grenadiers).
In the race's other classifications, Fabio Jakobsen of Deceuninck–Quick-Step took the points classification, winning three sprint stages along the way. Michael Storer of Team DSM won the mountains classification. He won two stages from the breakaway before taking the lead in the competition in the final two mountain stages. The young rider classification was won by Gino Mäder of Team Bahrain Victorious, who performed consistently in the mountains while serving as a domestique for first Landa and then Haig. He took the white jersey after following the decisive split in the GC group on the penultimate stage, allowing him to move up to fifth overall ahead of Egan Bernal (Ineos Grenadiers) in sixth place. Team Bahrain Victorious won the team classification while EF Education–Nippo's Magnus Cort, who won three stages, was given the overall combativity award.

## Teams

Twenty-three teams participated in the 2021 Vuelta a España. All nineteen UCI WorldTeams were obliged to participate. Four UCI ProTeams also participated: Alpecin–Fenix was automatically invited as the best-performing ProTeam in 2020, and the other three wildcard teams were selected by the Amaury Sport Organisation. Usually, only twenty-two teams would participate in the race, but the Union Cycliste Internationale allowed grand tour organizers to invite one extra wildcard team in 2021 to account for hardship created by the COVID-19 pandemic.
UCI WorldTeams
* AG2R Citroën Team
* Astana–Premier Tech
* Bora–Hansgrohe
* Cofidis
* Deceuninck–Quick-Step
* EF Education–Nippo
* Groupama–FDJ
* Ineos Grenadiers
* Intermarché–Wanty–Gobert Matériaux
* Israel Start-Up Nation
* Lotto–Soudal
* Movistar Team
* Team Bahrain Victorious
* Team BikeExchange
* Team DSM
* Team Jumbo–Visma
* Team Qhubeka NextHash
* Trek–Segafredo
* UAE Team Emirates
UCI ProTeams
* Alpecin–Fenix
* Burgos BH
* Caja Rural–Seguros RGA
* Euskaltel–Euskadi

## Pre-race favourites

Two-time defending champion Primož Roglič (Team Jumbo–Visma) was considered the pre-race favourite, closely followed by 2021 Giro d'Italia overall winner Egan Bernal (Ineos Grenadiers). Bernal's team mate and last year’s runner-up Richard Carapaz (Ineos Grenadiers), was seen as one of their main challengers, alongside fellow team mate Adam Yates, Mikel Landa (Team Bahrain Victorious) and 2020 podium finisher Hugh Carthy (EF Education–Nippo). Other riders considered as contenders included Movistar Team duo Miguel Ángel López and Enric Mas, Aleksandr Vlasov (Astana–Premier Tech) and Pavel Sivakov (Ineos Grenadiers).
Riders believed to be the main contenders for victories on the sprint stages were Fabio Jakobsen (Deceuninck–Quick-Step), Arnaud Démare (Groupama–FDJ), Jasper Philipsen (Alpecin–Fenix) and Michael Matthews (Team BikeExchange).

## Route and stages

Vuelta organisers unveiled the route for the 2021 edition on 11 February 2021. Unusually, the race took place entirely within Spain, due to the COVID-19 pandemic. The 2021 route included one new major mountain pass, the Altu d'El Gamoniteiru [es], for the finish of stage 18. This edition of the Vuelta was the first since 2014 to finish outside Madrid. As in 2014, the final stage was an individual time trial in Santiago de Compostela.
Stage characteristics and winners :
| Stage | Date | Course | Distance | Type | Type | Winner |
| 1 | 14 August | Burgos to Burgos | 7.1 km (4.4 mi) | | Individual time trial | Primož Roglič (SLO) |
| 2 | 15 August | Caleruega to Burgos | 166.7 km (103.6 mi) | | Flat stage | Jasper Philipsen (BEL) |
| 3 | 16 August | Santo Domingo de Silos to Espinosa de los Monteros – Picón Blanco | 202.8 km (126.0 mi) | | Mountain stage | Rein Taaramäe (EST) |
| 4 | 17 August | El Burgo de Osma to Molina de Aragón | 163.9 km (101.8 mi) | | Flat stage | Fabio Jakobsen (NED) |
| 5 | 18 August | Tarancón to Albacete | 184.4 km (114.6 mi) | | Flat stage | Jasper Philipsen (BEL) |
| 6 | 19 August | Requena to Alto de Cullera | 158.3 km (98.4 mi) | | Medium-mountain stage | Magnus Cort (DEN) |
| 7 | 20 August | Gandía to Balcón de Alicante | 152 km (94 mi) | | Mountain stage | Michael Storer (AUS) |
| 8 | 21 August | Santa Pola to La Manga del Mar Menor | 173.7 km (107.9 mi) | | Flat stage | Fabio Jakobsen (NED) |
| 9 | 22 August | Puerto Lumbreras to Alto de Velefique | 188 km (117 mi) | | Mountain stage | Damiano Caruso (ITA) |
| | 23 August | Almería | Rest day |
| 10 | 24 August | Roquetas de Mar to Rincón de la Victoria | 189 km (117 mi) | | Hilly stage | Michael Storer (AUS) |
| 11 | 25 August | Antequera to Valdepeñas de Jaén | 133.6 km (83.0 mi) | | Hilly stage | Primož Roglič (SLO) |
| 12 | 26 August | Jaén to Córdoba | 175 km (109 mi) | | Hilly stage | Magnus Cort (DEN) |
| 13 | 27 August | Belmez to Villanueva de la Serena | 203.7 km (126.6 mi) | | Flat stage | Florian Sénéchal (FRA) |
| 14 | 28 August | Don Benito to Pico Villuercas | 165.7 km (103.0 mi) | | Mountain stage | Romain Bardet (FRA) |
| 15 | 29 August | Navalmoral de la Mata to El Barraco | 197.5 km (122.7 mi) | | Mountain stage | Rafał Majka (POL) |
| | 30 August | Santander | Rest day |
| 16 | 31 August | Laredo to Santa Cruz de Bezana | 180 km (110 mi) | | Flat stage | Fabio Jakobsen (NED) |
| 17 | 1 September | Unquera to Lagos de Covadonga | 185.8 km (115.5 mi) | | Mountain stage | Primož Roglič (SLO) |
| 18 | 2 September | Salas to Altu d'El Gamoniteiru | 162.6 km (101.0 mi) | | Mountain stage | Miguel Ángel López (COL) |
| 19 | 3 September | Tapia to Monforte de Lemos | 191.2 km (118.8 mi) | | Hilly stage | Magnus Cort (DEN) |
| 20 | 4 September | Sanxenxo to Mos (Castro de Herville) | 202.2 km (125.6 mi) | | Mountain stage | Clément Champoussin (FRA) |
| 21 | 5 September | Padrón to Santiago de Compostela | 33.8 km (21.0 mi) | | Individual time trial | Primož Roglič (SLO) |
| Total | Total | Total | 3,417 km (2,123 mi) | 3,417 km (2,123 mi) | 3,417 km (2,123 mi) | 3,417 km (2,123 mi) |

## Race overview
### First week

The Vuelta began with a short individual time trial in Burgos. Alex Aranburu (Astana–Premier Tech) sat in the hot seat for the majority of the day after he set a time of 8' 38". Several riders threatened Aranburu's time, but only Primož Roglič (Team Jumbo–Visma), the last rider off the start ramp and the defending champion, was able to best him. Roglič set a time of 8' 32", six seconds quicker than Aranburu, to take the first red jersey of the race. The next stage featured a flat route with an opportunity for the sprinters to take the win. With 4.2 kilometres (2.6 mi) to go, a crash caught out several GC contenders, including Adam Yates (Ineos Grenadiers), Hugh Carthy (EF Education–Nippo), and David de la Cruz (UAE Team Emirates), with all three losing 30 seconds to a minute by the finish. In the sprint to the line, Jasper Philipsen (Alpecin–Fenix) outsprinted Fabio Jakobsen (Deceuninck–Quick-Step) to take the win and the lead in the points classification while Roglič retained the red jersey.
The third stage featured the first summit finish of the race, with the riders finishing atop the climb of Picón Blanco. An eight-man breakaway was allowed to build a maximum advantage of nine minutes, with Team Jumbo–Visma content to relinquish the red jersey to a breakaway rider. On the final climb, Joe Dombrowski (UAE Team Emirates), Rein Taaramäe (Intermarché–Wanty–Gobert Matériaux), and Kenny Elissonde (Trek–Segafredo) emerged as the strongest riders from the break. Further up the climb, Taaramäe dropped his companions to win the stage, taking the red jersey and the mountains classification's blue polka-dot jersey in the process. The headwind on the climb discouraged riders in the GC group from attacking, and no one was able to build a substantial gap. Near the finish, Enric Mas (Movistar Team) accelerated from the group, gaining three seconds on a seven-man group of favorites. Several contenders, including Carthy, Romain Bardet (Team DSM), and Aleksandr Vlasov (Astana–Premier Tech), lost almost half a minute. Recently crowned Olympic road race champion Richard Carapaz (Ineos Grenadiers) finished a minute behind the main GC group and was also docked 20 seconds for taking an unauthorized feed.
The fourth stage was mostly flat with a slight uphill ramp to the finish line, though the sprinters were still expected to contend for the stage win. At 2.2 kilometres (1.4 mi) from the line, Taaramäe, the race leader, crashed, but with the accident occurring inside the final 3 kilometres (1.9 mi), he was credited with the same time as the peloton and was able to retain the race lead. In the final sprint, Jakobsen outsprinted Arnaud Démare (Groupama–FDJ) for the win to take the lead in the points classification and the green jersey from Philipsen. The fifth stage featured another chance for the sprinters with a flat course to Albacete. With 11 kilometres (6.8 mi) to go, a large crash brought down most of the peloton, including Bardet and Taaramäe, but all riders who crashed managed to continue riding. In the sprint, Philipsen outsprinted Jakobsen to take his second stage win of the race; in doing so, Philipsen took back the green jersey. Taaramäe finished two minutes down, thus putting second-placed Elissonde into the red jersey, while Bardet finished 12 minutes down, dropping him out of GC contention.
The sixth stage featured the second uphill finish of the race atop the 1.9-kilometre (1.2 mi)-climb of Alto de la Montaña de Cullera. With 34 kilometres (21 mi) to go, crosswinds temporarily split the peloton into echelons, but the peloton eventually reformed ahead of the final climb. The lead quintet began the climb with a lead of only 20 seconds, with Magnus Cort (EF Education–Nippo) dropping his breakaway companions inside the final kilometre. With 300 metres (980 ft) left, Roglič kicked clear and bridged up to Cort at the line, but Cort held on for the stage win. Most of the other contenders finished up to 27 seconds behind while Carthy lost almost three minutes. With Elissonde losing four and a half minutes, Roglič took the red jersey back.
The seventh stage featured six categorized climbs, including a summit finish atop Balcón de Alicante. After a furious fight for the break, 29 riders broke clear, with the peloton content to let the break battle for the stage win. The fight for the win came down to four riders: Michael Storer (Team DSM), Pavel Sivakov (Ineos Grenadiers), Carlos Verona (Movistar Team), and Andreas Kron (Lotto–Soudal). Verona made the first attack with 4 kilometres (2.5 mi) to go but Storer made the decisive move with 3.3 kilometres (2.1 mi) to go and soloed to the stage win. In the GC group, Carthy struggled on the first climb before eventually abandoning. On the fourth climb, the Puerto El Collao, Alejandro Valverde (Movistar Team) launched an attack with Carapaz and Yates. On the descent, Valverde crashed heavily on a bend, and though he was initially able to continue riding, he was eventually forced to abandon due to his injuries; it was later revealed that he had fractured his collarbone. Carapaz, Roglič, and Miguel Ángel López (Movistar Team) also made an attack but they were caught. On the final climb, Yates put in a few attacks that split the GC group, bringing with him Roglič, Mas, López, De La Cruz, Egan Bernal (Ineos Grenadiers), and Louis Meintjes (Intermarché–Wanty–Gobert Matériaux) to the finish. Vlasov lost 13 seconds while other contenders lost around half a minute. In the GC, Roglič narrowly held on to his red jersey by eight seconds over Felix Großschartner (Bora–Hansgrohe), who was in the break. The next stage was another opportunity for the sprinters. After the day's main breakaway trio was caught with around 37 kilometres (23 mi) to go, Astana–Premier Tech attempted to split the peloton into echelons, but the peloton eventually regrouped for the sprint finish. After a late attack from Jetse Bol (Burgos BH) was reeled back in, Jakobsen outsprinted Alberto Dainese (Team DSM) to take his second stage win of the race.
On stage nine, the peloton faced a mountainous route with a summit finish atop the special category Alto de Velefique. The break was finally formed after almost 90 kilometres (56 mi), with 11 riders going off the front. With 71 kilometres (44 mi) to go, Damiano Caruso (Team Bahrain Victorious) dropped his breakaway companions on the Alto Collado Venta Luisa. He gradually built his lead over the chasing remnants of the breakaway before holding off the GC contenders to win the stage. In the GC group, Mikel Landa (Team Bahrain Victorious) was dropped at the bottom of the Velefique, eventually losing five minutes on the day. Yates put in a few digs on the climb, with Roglič and Mas the only riders able to stay with him during his last attack. Roglič and Mas eventually dropped Yates before working together to extend their lead, with Roglič sprinting to take second place, one second ahead of Mas, to extend his lead. A chase group composed of Yates, López, Bernal, and Jack Haig (Team Bahrain Victorious) formed behind, with Bernal unable to follow the pace. The chasers finished 39 seconds down on Roglič while Bernal finished with Giulio Ciccone (Trek–Segafredo) and Gino Mäder (Team Bahrain Victorious) at more than a minute down. Mas was the only rider within a minute of Roglič heading into the first rest day.

### Second week

The first stage after the rest day began with gently undulating terrain before the riders tackled the second-category Puerto de Almáchar, which crested with 16.4 kilometres (10.2 mi) left before the descent and a flat run-in to the finish. With the peloton content to let the break battle for the stage win, 31 riders finally broke away after more than 70 kilometres (43 mi). On the Puerto de Almáchar, Michael Storer (Team DSM) dropped his breakaway companions on his way to another solo stage win. In the GC group, race leader Primož Roglič (Team Jumbo–Visma), attacked on the climb's steepest section and crested the climb with a margin of around 20 seconds over a chase group composed of Jack Haig (Team Bahrain Victorious) and the Movistar Team duo of Enric Mas and Miguel Ángel López. However, Roglič crashed on the descent, and though he was able to get back up quickly and relatively unscathed, he relinquished his gap and was quickly caught by the chasing trio. Aleksandr Vlasov (Astana–Premier Tech), Felix Großschartner (Bora–Hansgrohe), and Roglič's teammate, Sepp Kuss, bridged up to the quartet, with the seven riders crossing the line at almost 12 minutes down. A group containing the Ineos Grenadiers duo of Egan Bernal and Adam Yates crossed a further 37 seconds in arrears. Odd Christian Eiking (Intermarché–Wanty–Gobert Matériaux), who was part of the break and started the day just over nine minutes behind Roglič, moved into the race lead and took over the red jersey, while fellow breakaway member Guillaume Martin (Cofidis) moved up into second at almost one minute in arrears.
The eleventh stage featured a return to the steep uphill finish in Valdepeñas de Jaén. A break of five was established after 30 kilometres (19 mi), eventually leading by as much as two minutes. Magnus Cort (EF Education–Nippo) dropped his breakaway companions on the Puerto de Locubín before reaching the final kilometre with a lead of just under 20 seconds; he would eventually be caught with 200 metres (660 ft) left. In the final sprint, Roglič powered away from Mas to take his second stage win of the race. Eiking crossed the line at 11 seconds down to retain the red jersey. The next stage featured a hilly course with another large fight for the break. Eight riders broke clear after 75 kilometres (47 mi) but UAE Team Emirates kept their lead at a minute and a half. With 54 kilometres (34 mi) to go, a crash took down several riders in the peloton, including Roglič and Yates, but all riders eventually got back up and returned to the peloton. On the last climb of the day, the break was caught before Giulio Ciccone (Trek–Segafredo), Jay Vine (Alpecin–Fenix), Romain Bardet (Team DSM), and Sergio Henao (Team Qhubeka NextHash) pulled away from the peloton. The quartet was eventually caught in the final kilometre. In the sprint to the line, Jens Keukeleire (EF Education–Nippo) led out his sprinter, Cort, who took his second stage of the race.
Ahead of two consecutive mountainous stages, the thirteenth stage provided another opportunity for the sprinters. With 60 kilometres (37 mi) to go, crosswinds split the peloton but it regrouped ahead of the finale. In the technical final few kilometres, Deceuninck–Quick-Step took to the front and set a fast pace, which ended up causing several gaps and dropping their sprinter, Fabio Jakobsen. The team then turned to usual lead-out man Florian Sénéchal, who held off Matteo Trentin (UAE Team Emirates) to win his first Grand Tour stage.
The fourteenth stage was the first of those mountainous stages, with a summit finish at Pico Villuercas. An 18-man break built up an advantage of 14 minutes as they battled for the win. Vine, Daniel Navarro (Burgos BH), and Sep Vanmarcke (Israel Start-Up Nation), who were in the break, crashed in separate incidents but were able to continue, with Vine and Navarro getting back to the break. Bardet emerged as the strongest from the break, dropping everyone on the final climb to win the stage and take the lead in the mountains classification. His closest chasers were Vine and Jesús Herrada (Cofidis) at 44 seconds down. In the GC group, the headwind on the final climb and the pace set by Team Jumbo–Visma dissuaded attacks from the contenders. However, Miguel Ángel López's attack with 2.7 kilometres (1.7 mi) to go was the first serious attempt, and he built an advantage of more than 10 seconds before being chased by Roglič in the final kilometre. Roglič was immediately followed by Mas, Bernal, and Haig, with the quartet coming to within four seconds of catching López at the finish. Eiking lost 20 seconds but stayed in the red jersey for another day.
On the fifteenth stage, the riders tackled four climbs before a short descent to the finish in El Barraco ahead of the second rest day. Another furious fight for the break ended with three riders, Maxim Van Gils (Lotto–Soudal), Fabio Aru (Team Qhubeka NextHash), and Rafał Majka (UAE Team Emirates), breaking away on the first climb while another chase group of attackers formed behind. Van Gils soon dropped back to the chase group, and with 87 kilometres (54 mi) to go, Majka dropped Aru to solo off the front. The Pole maintained his advantage to the finish to win the stage. His closest pursuer was Steven Kruijswijk (Team Jumbo–Visma), who finished almost a minute and a half down. Meanwhile, the GC group remained relatively quiet before Yates animated the group with several attacks on the last climb, with his last attack giving him a 15-second advantage over the other contenders at the finish line. Eiking finished with the other contenders to keep the red jersey heading into the second rest day.

### Third week

The third week began with a flat stage, possibly offering the last chance for the pure sprinters to win. A few kilometres after the stage started, a crash took down some riders, splitting the peloton in the process; all those who crashed would eventually get back up. Giulio Ciccone (Trek–Segafredo) was forced to abandon the race while Enric Mas (Movistar Team) and Guillaume Martin (Cofidis) were among those who went down. A five-man break built a two-minute lead while Harm Vanhoucke (Lotto–Soudal) bridged up front on the only categorized climb of the day. Stan Dewulf (AG2R Citroën Team), the last remnant of the break, was caught with 4.5 kilometres (2.8 mi) to go. In the final sprint, Fabio Jakobsen (Deceuninck–Quick-Step) won his third stage of the race. Odd Christian Eiking (Intermarché–Wanty–Gobert Matériaux) kept the red jersey ahead of the two big mountain stages.
The seventeenth stage was the first of two consecutive mountain stages that was expected to be decisive in the GC battle, with a summit finish at the Lagos de Covadonga. On the second ascent of La Collada Llomena, the day's main breakaway was caught, while Eiking was dropped from the peloton. With 61 kilometres (38 mi) to go, Egan Bernal (Ineos Grenadiers) launched an attack, followed immediately by Primož Roglič (Team Jumbo–Visma). Both riders gradually increased their advantage over a group containing the other contenders, which was being led by Team Bahrain Victorious. On the final climb up to the Lagos de Covadonga, Roglič dropped Bernal with 7.5 kilometres (4.7 mi) to go and soloed to his third stage win; in doing so, Roglič took over the red jersey. Towards the top, Bernal was caught by a six-man chase group, which contained Roglič's closest rivals. In the final kilometre, as Roglič was beginning his post-race descent, his teammate, Sepp Kuss, sprinted to lead home the chase group at 1' 35" behind, denying the other contenders from getting the six bonus seconds on offer for second place. In the GC, Roglič increased his advantage to almost two and a half minutes over Mas.
The eigteenth stage featured the last major mountain stage, with the riders tackling the finishing climb of Altu d'El Gamoniteiru for the first time in Vuelta history. A 32-man break pulled away at the start of the stage while Team Bahrain Victorious controlled the pace in the peloton. Michael Storer (Team DSM) emerged as the strongest rider in the break, dropping his breakaway companions and embarking on a 72-kilometre (45 mi) solo break. The peloton gradually decreased his advantage before he was caught by David de la Cruz (UAE Team Emirates) on the Gamoniteiru. De la Cruz dropped Storer with 5.5 kilometres (3.4 mi) left, but he was soon caught by Miguel Ángel López (Movistar Team), who attacked from a reduced group containing Roglič, Kuss, Mas, and Bernal. López dropped de la Cruz immediately before soloing to the stage win. Roglič outsprinted Mas and Bernal at the finish, gapping them by a few seconds. A quartet containing Jack Haig (Team Bahrain Victorious) finished 58 seconds behind. By finishing second, Roglič strengthened his hold on the red jersey.
The nineteenth stage featured a hilly start, with three categorized climbs before a mostly flat finale. A 24-man break pulled away at the start of the day, but Team BikeExchange and Team DSM only gave the break a maximum lead of two and a half minutes. With 43 kilometres (27 mi) left, a crash brought down several riders in the peloton. The biggest victim was Louis Meintjes (Intermarché–Wanty–Gobert Matériaux), sitting in tenth on GC, as he was forced to abandon the race. Up front, seven riders were left in the break, with the peloton hovering at half a minute behind. However, the break worked well together to maintain their advantage to the finish. In the final sprint, Magnus Cort (EF Education–Nippo) sprinted past Quinn Simmons (Trek–Segafredo) and held off Rui Oliveira (UAE Team Emirates) to take his third stage win of the race. The only change in the top ten was de la Cruz climbing into tenth as a result of Meintjes' withdrawal.
The penultimate stage featured five categorized climbs inside the final 100 kilometres (62 mi). After 50 kilometres (31 mi) of racing, a 16-man group broke away from the peloton, building a lead of 11 and a half minutes before Ineos Grenadiers began to chase. In the break, Storer took maximum points on the first three climbs to clinch the mountains classification. On the descent of Alto de Mougás, Ryan Gibbons (UAE Team Emirates) attacked from the break, building a lead of over a minute on the chase group. On the ascent of the same climb, Adam Yates (Ineos Grenadiers) attacked the peloton twice. Only Roglič, Mas, Haig, and Gino Mäder (Team Bahrain Victorious) were able to follow him, with the group's lead ballooning to more than four minutes over the López and Bernal group. López would eventually abandon in the middle of the stage, despite the appeals of his teammates and directeur sportif. The GC group caught the remnants of the break over the last two climbs. With Gibbons' lead at less than a minute, Yates and Mas launched some attacks on the final climb, catching and dropping Gibbons, but Roglič and Haig came back each time. Inside the final 2 kilometres (1.2 mi), as the four riders stalled, Clément Champoussin (AG2R Citroën Team) accelerated from behind and held on to win his first Grand Tour stage. Roglič finished second to retain the red jersey while Haig moved up to third. Yates moved up to fourth while Mäder climbed into the top five, taking the white jersey from Bernal in the process.
The final stage featured a 33.8-kilometre (21.0 mi) time trial from Padrón to Santiago de Compostela. Josef Černý (Deceuninck–Quick-Step), the first rider off the start ramp, set the first benchmark time after finishing with a time of 45' 18". Černý's time stood until Cort beat his time at the first two time checks before setting a time of 44' 16", just over a minute faster than Černý. He sat in the hot seat until Roglič, the last rider off the start ramp, took to the course. He was faster than Cort at the first two time checks. Despite almost taking a wrong turn at one point, Roglič set a time of 44' 02", beating Cort's time by 14 seconds to win his fourth stage of the race and confirm his third consecutive Vuelta win. Jakobsen, Storer, and Mäder finished the time trial safely to confirm their victories in the points, mountains, and young rider classifications, respectively. Team Bahrain Victorious won the team classification while Cort won the overall combativity award. 142 riders finished the race, 42 less than the number of riders who started the race.

## Classification leadership

The Vuelta a España had four individual classifications, for which jerseys were awarded daily to the leading rider, as well as a team competition. The primary classification was the general classification, which was calculated by adding each rider's finishing times on each stage. Time bonuses were awarded at the end of every stage apart from the individual time trials (stages 1 and 21). The rider with the lowest cumulative time was the leader of the general classification, and wore the red jersey. The leader of the general classification at the end of the race was considered the overall winner of the Vuelta a España.
The second classification was the points classification. Riders received points for finishing among the highest placed in a stage finish, or in intermediate sprints during the stages. The points available for each stage finish were determined by the stage's type. The leader was identified by a green jersey.
Mountains classification points :
| Category | 1st | 2nd | 3rd | 4th | 5th | 6th |
| Cima Alberto Fernández | 20 | 15 | 10 | 6 | 4 | 2 |
| Special-category | 15 | 10 | 6 | 4 | 2 |
| First-category | 10 | 6 | 4 | 2 | 1 |
| Second-category | 5 | 3 | 1 |
| Third-category | 3 | 2 | 1 |
The next classification was the mountains classification. Points were awarded to the riders that reached the summit of the most difficult climbs first. The climbs were categorized, in order of increasing difficulty, third-, second-, and first- and special-category. The leader wore a white jersey with blue polka dots.
The last of the individual classifications was the young rider classification, which was calculated by adding each rider's finishing times on each stage for each rider born on or after 1 January 1996. The rider with the lowest cumulative time was the leader of the young rider classification, and wore the white jersey.
There was also the team classification. After each stage, the times of the three highest finishers of each team were added together, and all the members of the leading team wore a red number bib on the following stage. The victory was awarded to the team with the lowest cumulative time at the end of the event.
In addition, there was one individual award: the combativity award. This award was given after each stage (excluding the individual time trial) to the rider "who displayed the most generous effort and best sporting spirit." The daily winner wore a yellow number bib the following stage. At the end of the Vuelta, a jury decided the top three riders for the "Most Combative Rider of La Vuelta", with a public vote deciding the victor.
Classification leadership by stage :
| Stage | Winner | General classification | Points classification | Mountains classification | Young rider classification | Team classification | Combativity award |
| 1 | Primož Roglič | Primož Roglič | Primož Roglič | Sepp Kuss | Andrea Bagioli | Team Jumbo–Visma | not awarded |
| 2 | Jasper Philipsen | Primož Roglič | Jasper Philipsen | Sepp Kuss | Andrea Bagioli | Team Jumbo–Visma | Diego Rubio |
| 3 | Rein Taaramäe | Rein Taaramäe | Jasper Philipsen | Rein Taaramäe | Egan Bernal | UAE Team Emirates | Julen Amezqueta |
| 4 | Fabio Jakobsen | Rein Taaramäe | Fabio Jakobsen | Rein Taaramäe | Egan Bernal | UAE Team Emirates | Ángel Madrazo |
| 5 | Jasper Philipsen | Kenny Elissonde | Jasper Philipsen | Rein Taaramäe | Egan Bernal | UAE Team Emirates | Oier Lazkano |
| 6 | Magnus Cort | Primož Roglič | Jasper Philipsen | Rein Taaramäe | Egan Bernal | Movistar Team | Joan Bou |
| 7 | Michael Storer | Primož Roglič | Jasper Philipsen | Pavel Sivakov | Egan Bernal | Movistar Team | Michael Storer |
| 8 | Fabio Jakobsen | Primož Roglič | Fabio Jakobsen | Pavel Sivakov | Egan Bernal | Movistar Team | Aritz Bagües |
| 9 | Damiano Caruso | Primož Roglič | Fabio Jakobsen | Damiano Caruso | Egan Bernal | Movistar Team | Julen Amezqueta |
| 10 | Michael Storer | Odd Christian Eiking | Fabio Jakobsen | Damiano Caruso | Egan Bernal | Ineos Grenadiers | Matteo Trentin |
| 11 | Primož Roglič | Odd Christian Eiking | Fabio Jakobsen | Damiano Caruso | Egan Bernal | Ineos Grenadiers | Jonathan Lastra |
| 12 | Magnus Cort | Odd Christian Eiking | Fabio Jakobsen | Damiano Caruso | Egan Bernal | Ineos Grenadiers | Julen Amezqueta |
| 13 | Florian Sénéchal | Odd Christian Eiking | Fabio Jakobsen | Damiano Caruso | Egan Bernal | Ineos Grenadiers | Álvaro Cuadros |
| 14 | Romain Bardet | Odd Christian Eiking | Fabio Jakobsen | Romain Bardet | Egan Bernal | Ineos Grenadiers | Daniel Navarro |
| 15 | Rafał Majka | Odd Christian Eiking | Fabio Jakobsen | Romain Bardet | Egan Bernal | Ineos Grenadiers | Rafał Majka |
| 16 | Fabio Jakobsen | Odd Christian Eiking | Fabio Jakobsen | Romain Bardet | Egan Bernal | Ineos Grenadiers | Jetse Bol |
| 17 | Primož Roglič | Primož Roglič | Fabio Jakobsen | Romain Bardet | Egan Bernal | Team Bahrain Victorious | Egan Bernal |
| 18 | Miguel Ángel López | Primož Roglič | Fabio Jakobsen | Michael Storer | Egan Bernal | Team Bahrain Victorious | Michael Storer |
| 19 | Magnus Cort | Primož Roglič | Fabio Jakobsen | Michael Storer | Egan Bernal | Team Bahrain Victorious | Andreas Kron |
| 20 | Clément Champoussin | Primož Roglič | Fabio Jakobsen | Michael Storer | Gino Mäder | Team Bahrain Victorious | Ryan Gibbons |
| 21 | Primož Roglič | Primož Roglič | Fabio Jakobsen | Michael Storer | Gino Mäder | Team Bahrain Victorious | not awarded |
| Final | Final | Primož Roglič | Fabio Jakobsen | Michael Storer | Gino Mäder | Team Bahrain Victorious | Magnus Cort |
* On stage 2, Alex Aranburu, who was second in the points classification, wore the green jersey, because first-placed Primož Roglič wore the red jersey as the leader of the general classification.
* On stages 4–5, Kenny Elissonde, who was second in the mountains classification, wore the blue polka-dot jersey, because first-placed Rein Taaramäe wore the red jersey as the leader of the general classification.

## Final classification standings

Legend :
| Denotes the winner of the general classification | Denotes the winner of the young rider classification |
| Denotes the winner of the points classification | Denotes the winner of the team classification |
| Denotes the winner of the mountains classification | Denotes the winner of the combativity award |

### General classification

Final general classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Primož Roglič (SLO) | Team Jumbo–Visma | 83h 55' 29" |
| 2 | Enric Mas (ESP) | Movistar Team | + 4' 42" |
| 3 | Jack Haig (AUS) | Team Bahrain Victorious | + 7' 40" |
| 4 | Adam Yates (GBR) | Ineos Grenadiers | + 9' 06" |
| 5 | Gino Mäder (SUI) | Team Bahrain Victorious | + 11' 33" |
| 6 | Egan Bernal (COL) | Ineos Grenadiers | + 13' 27" |
| 7 | David de la Cruz (ESP) | UAE Team Emirates | + 18' 33" |
| 8 | Sepp Kuss (USA) | Team Jumbo–Visma | + 18' 55" |
| 9 | Guillaume Martin (FRA) | Cofidis | + 20' 27" |
| 10 | Felix Großschartner (AUT) | Bora–Hansgrohe | + 22' 22" |
Final general classification (11–142) :
| Rank | Rider | Team | Time |
| 11 | Odd Christian Eiking (NOR) | Intermarché–Wanty–Gobert Matériaux | + 25' 14" |
| 12 | Steven Kruijswijk (NED) | Team Jumbo–Visma | + 26' 42" |
| 13 | Juan Pedro López (ESP) | Trek–Segafredo | + 31' 21" |
| 14 | Geoffrey Bouchard (FRA) | AG2R Citroën Team | + 49' 09" |
| 15 | Rémy Rochas (FRA) | Cofidis | + 52' 32" |
| 16 | Clément Champoussin (FRA) | AG2R Citroën Team | + 57' 29" |
| 17 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 1h 05' 31" |
| 18 | Sam Oomen (NED) | Team Jumbo–Visma | + 1h 09' 25" |
| 19 | Óscar Cabedo (ESP) | Burgos BH | + 1h 12' 43" |
| 20 | Steff Cras (BEL) | Lotto–Soudal | + 1h 22' 06" |
| 21 | Rafał Majka (POL) | UAE Team Emirates | + 1h 22' 14" |
| 22 | Gianluca Brambilla (ITA) | Trek–Segafredo | + 1h 22' 38" |
| 23 | Wout Poels (NED) | Team Bahrain Victorious | + 1h 34' 52" |
| 24 | Daniel Navarro (ESP) | Burgos BH | + 1h 37' 26" |
| 25 | Romain Bardet (FRA) | Team DSM | + 1h 37' 27" |
| 26 | Ion Izagirre (ESP) | Astana–Premier Tech | + 1h 37' 47" |
| 27 | Gorka Izagirre (ESP) | Astana–Premier Tech | + 1h 39' 03" |
| 28 | Jan Hirt (CZE) | Intermarché–Wanty–Gobert Matériaux | + 1h 42' 39" |
| 29 | Simone Petilli (ITA) | Intermarché–Wanty–Gobert Matériaux | + 1h 45' 51" |
| 30 | Luis Ángel Maté (ESP) | Euskaltel–Euskadi | + 1h 48' 17" |
| 31 | Mikel Nieve (ESP) | Team BikeExchange | + 1h 56' 31" |
| 32 | Jefferson Alveiro Cepeda (ECU) | Caja Rural–Seguros RGA | + 1h 58' 54" |
| 33 | Lilian Calmejane (FRA) | AG2R Citroën Team | + 2h 03' 52" |
| 34 | Martijn Tusveld (NED) | Team DSM | + 2h 04' 06" |
| 35 | Pavel Sivakov (RUS) | Ineos Grenadiers | + 2h 04' 47" |
| 36 | Ryan Gibbons (RSA) | UAE Team Emirates | + 2h 05' 50" |
| 37 | Gotzon Martín (ESP) | Euskaltel–Euskadi | + 2h 10' 39" |
| 38 | Jesús Herrada (ESP) | Cofidis | + 2h 16' 48" |
| 39 | Joe Dombrowski (USA) | UAE Team Emirates | + 2h 17' 20" |
| 40 | Michael Storer (AUS) | Team DSM | + 2h 22' 45" |
| 41 | Jan Polanc (SLO) | UAE Team Emirates | + 2h 22' 55" |
| 42 | Koen Bouwman (NED) | Team Jumbo–Visma | + 2h 24' 30" |
| 43 | Julen Amezqueta (ESP) | Caja Rural–Seguros RGA | + 2h 25' 16" |
| 44 | Andrey Zeits (KAZ) | Team BikeExchange | + 2h 27' 52" |
| 45 | Mikaël Cherel (FRA) | AG2R Citroën Team | + 2h 30' 26" |
| 46 | Mikel Bizkarra (ESP) | Euskaltel–Euskadi | + 2h 30' 33" |
| 47 | Ben Zwiehoff (GER) | Bora–Hansgrohe | + 2h 32' 29" |
| 48 | Floris De Tier (BEL) | Alpecin–Fenix | + 2h 37' 18" |
| 49 | Nick Schultz (AUS) | Team BikeExchange | + 2h 39' 13" |
| 50 | Jens Keukeleire (BEL) | EF Education–Nippo | + 2h 48' 20" |
| 51 | Fabio Aru (ITA) | Team Qhubeka NextHash | + 2h 49' 04" |
| 52 | Nicolas Prodhomme (FRA) | Cofidis | + 2h 53' 05" |
| 53 | Diego Camargo (COL) | EF Education–Nippo | + 2h 53' 47" |
| 54 | Lucas Hamilton (AUS) | Team BikeExchange | + 2h 56' 47" |
| 55 | Rein Taaramäe (EST) | Intermarché–Wanty–Gobert Matériaux | + 2h 58' 46" |
| 56 | José Joaquín Rojas (ESP) | Movistar Team | + 3h 02' 19" |
| 57 | José Herrada (ESP) | Cofidis | + 3h 05' 54" |
| 58 | Anthony Roux (FRA) | Groupama–FDJ | + 3h 07' 54" |
| 59 | Mark Padun (UKR) | Team Bahrain Victorious | + 3h 09' 46" |
| 60 | Mikel Iturria (ESP) | Euskaltel–Euskadi | + 3h 14' 26" |
| 61 | Thymen Arensman (NED) | Team DSM | + 3h 14' 59" |
| 62 | Robert Gesink (NED) | Team Jumbo–Visma | + 3h 15' 18" |
| 63 | Ángel Madrazo (ESP) | Burgos BH | + 3h 15' 38" |
| 64 | Chris Hamilton (AUS) | Team DSM | + 3h 18' 33" |
| 65 | Stan Dewulf (BEL) | AG2R Citroën Team | + 3h 21' 21" |
| 66 | Imanol Erviti (ESP) | Movistar Team | + 3h 28' 24" |
| 67 | Tom Pidcock (GBR) | Ineos Grenadiers | + 3h 31' 54" |
| 68 | Andreas Kron (DEN) | Lotto–Soudal | + 3h 34' 35" |
| 69 | Lawson Craddock (USA) | EF Education–Nippo | + 3h 36' 48" |
| 70 | Michael Matthews (AUS) | Team BikeExchange | + 3h 39' 31" |
| 71 | Jetse Bol (NED) | Burgos BH | + 3h 39' 48" |
| 72 | Nelson Oliveira (POR) | Movistar Team | + 3h 39' 49" |
| 73 | Jay Vine (AUS) | Alpecin–Fenix | + 3h 40' 31" |
| 74 | Rui Oliveira (POR) | UAE Team Emirates | + 3h 42' 10" |
| 75 | Ander Okamika (ESP) | Burgos BH | + 3h 43' 42" |
| 76 | Olivier Le Gac (FRA) | Groupama–FDJ | + 3h 44' 56" |
| 77 | Magnus Cort (DEN) | EF Education–Nippo | + 3h 46' 48" |
| 78 | Álvaro Cuadros (ESP) | Caja Rural–Seguros RGA | + 3h 46' 50" |
| 79 | Damien Touzé (FRA) | AG2R Citroën Team | + 3h 47' 28" |
| 80 | Matteo Trentin (ITA) | UAE Team Emirates | + 3h 47' 40" |
| 81 | Antonio Jesús Soto (ESP) | Euskaltel–Euskadi | + 3h 50' 05" |
| 82 | Nathan Van Hooydonck (BEL) | Team Jumbo–Visma | + 3h 50' 19" |
| 83 | Sylvain Moniquet (BEL) | Lotto–Soudal | + 3h 52' 10" |
| 84 | Pelayo Sánchez (ESP) | Burgos BH | + 3h 52' 29" |
| 85 | Kevin Geniets (LUX) | Groupama–FDJ | + 3h 52' 41" |
| 86 | James Piccoli (CAN) | Israel Start-Up Nation | + 3h 52' 52" |
| 87 | Aritz Bagües (ESP) | Caja Rural–Seguros RGA | + 3h 53' 02" |
| 88 | Maxim Van Gils (BEL) | Lotto–Soudal | + 3h 53' 55" |
| 89 | Fernando Barceló (ESP) | Cofidis | + 3h 55' 36" |
| 90 | Andrea Bagioli (ITA) | Deceuninck–Quick-Step | + 3h 58' 45" |
| 91 | Yuriy Natarov (KAZ) | Astana–Premier Tech | + 4h 02' 04" |
| 92 | Eddy Finé (FRA) | Cofidis | + 4h 04' 47" |
| 93 | Guy Niv (ISR) | Israel Start-Up Nation | + 4h 06' 37" |
| 94 | Jan Tratnik (SLO) | Team Bahrain Victorious | + 4h 07' 22" |
| 95 | Damien Howson (AUS) | Team BikeExchange | + 4h 10' 16" |
| 96 | Arnaud Démare (FRA) | Groupama–FDJ | + 4h 16' 42" |
| 97 | Clément Venturini (FRA) | AG2R Citroën Team | + 4h 18' 28" |
| 98 | Salvatore Puccio (ITA) | Ineos Grenadiers | + 4h 18' 54" |
| 99 | Tobias Ludvigsson (SWE) | Groupama–FDJ | + 4h 19' 24" |
| 100 | James Knox (GBR) | Deceuninck–Quick-Step | + 4h 20' 47" |
| 101 | Mauri Vansevenant (BEL) | Deceuninck–Quick-Step | + 4h 21' 19" |
| 102 | Anton Palzer (GER) | Bora–Hansgrohe | + 4h 22' 19" |
| 103 | Joan Bou (ESP) | Euskaltel–Euskadi | + 4h 22' 43" |
| 104 | Dylan Sunderland (AUS) | Team Qhubeka NextHash | + 4h 24' 21" |
| 105 | Dimitri Claeys (BEL) | Team Qhubeka NextHash | + 4h 27' 40" |
| 106 | Carlos Canal (ESP) | Burgos BH | + 4h 28' 30" |
| 107 | Cesare Benedetti (ITA) | Bora–Hansgrohe | + 4h 30' 10" |
| 108 | Antonio Nibali (ITA) | Trek–Segafredo | + 4h 30' 22" |
| 109 | Luka Mezgec (SLO) | Team BikeExchange | + 4h 30' 30" |
| 110 | Wesley Kreder (NED) | Intermarché–Wanty–Gobert Matériaux | + 4h 34' 38" |
| 111 | Xabier Azparren (ESP) | Euskaltel–Euskadi | + 4h 36' 40" |
| 112 | Patrick Gamper (AUT) | Bora–Hansgrohe | + 4h 38' 23" |
| 113 | Chad Haga (USA) | Team DSM | + 4h 38' 46" |
| 114 | Nico Denz (GER) | Team DSM | + 4h 42' 09" |
| 115 | Harm Vanhoucke (BEL) | Lotto–Soudal | + 4h 42' 31" |
| 116 | Yukiya Arashiro (JPN) | Team Bahrain Victorious | + 4h 42' 59" |
| 117 | Alexander Krieger (GER) | Alpecin–Fenix | + 4h 47' 15" |
| 118 | Florian Sénéchal (FRA) | Deceuninck–Quick-Step | + 4h 48' 14" |
| 119 | Robert Stannard (AUS) | Team BikeExchange | + 4h 48' 56" |
| 120 | Alex Kirsch (LUX) | Trek–Segafredo | + 4h 50' 22" |
| 121 | Florian Vermeersch (BEL) | Lotto–Soudal | + 4h 57' 09" |
| 122 | Edward Planckaert (BEL) | Alpecin–Fenix | + 5h 03' 10" |
| 123 | Piet Allegaert (BEL) | Cofidis | + 5h 03' 48" |
| 124 | Quinn Simmons (USA) | Trek–Segafredo | + 5h 06' 02" |
| 125 | Tom Scully (NZL) | EF Education–Nippo | + 5h 09' 47" |
| 126 | Kevin Van Melsen (BEL) | Intermarché–Wanty–Gobert Matériaux | + 5h 10' 04" |
| 127 | Ramon Sinkeldam (NED) | Groupama–FDJ | + 5h 16' 27" |
| 128 | Lennard Hofstede (NED) | Team Jumbo–Visma | + 5h 20' 45" |
| 129 | Alberto Dainese (ITA) | Team DSM | + 5h 20' 50" |
| 130 | Connor Brown (NZL) | Team Qhubeka NextHash | + 5h 22' 42" |
| 131 | Bert-Jan Lindeman (NED) | Team Qhubeka NextHash | + 5h 26' 43" |
| 132 | Jon Aberasturi (ESP) | Caja Rural–Seguros RGA | + 5h 29' 29" |
| 133 | Zdeněk Štybar (CZE) | Deceuninck–Quick-Step | + 5h 34' 14" |
| 134 | Scott Thwaites (GBR) | Alpecin–Fenix | + 5h 36' 20" |
| 135 | Sebastian Berwick (AUS) | Israel Start-Up Nation | + 5h 37' 10" |
| 136 | Juan José Lobato (ESP) | Euskaltel–Euskadi | + 5h 45' 39" |
| 137 | Bert Van Lerberghe (BEL) | Deceuninck–Quick-Step | + 5h 48' 13" |
| 138 | Riccardo Minali (ITA) | Intermarché–Wanty–Gobert Matériaux | + 5h 50' 15" |
| 139 | Jordi Meeus (BEL) | Bora–Hansgrohe | + 5h 53' 36" |
| 140 | Martin Laas (EST) | Bora–Hansgrohe | + 6h 00' 28" |
| 141 | Fabio Jakobsen (NED) | Deceuninck–Quick-Step | + 6h 01' 24" |
| 142 | Josef Černý (CZE) | Deceuninck–Quick-Step | + 6h 03' 50" |

### Points classification

Final points classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Fabio Jakobsen (NED) | Deceuninck–Quick-Step | 250 |
| 2 | Primož Roglič (SLO) | Team Jumbo–Visma | 199 |
| 3 | Magnus Cort (DEN) | EF Education–Nippo | 161 |
| 4 | Matteo Trentin (ITA) | UAE Team Emirates | 145 |
| 5 | Enric Mas (ESP) | Movistar Team | 120 |
| 6 | Alberto Dainese (ITA) | Team DSM | 120 |
| 7 | Michael Matthews (AUS) | Team BikeExchange | 114 |
| 8 | Andrea Bagioli (ITA) | Deceuninck–Quick-Step | 101 |
| 9 | Egan Bernal (COL) | Ineos Grenadiers | 96 |
| 10 | Arnaud Démare (FRA) | Groupama–FDJ | 91 |

### Mountains classification

Final mountains classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Michael Storer (AUS) | Team DSM | 80 |
| 2 | Romain Bardet (FRA) | Team DSM | 61 |
| 3 | Primož Roglič (SLO) | Team Jumbo–Visma | 51 |
| 4 | Damiano Caruso (ITA) | Team Bahrain Victorious | 33 |
| 5 | Rafał Majka (POL) | UAE Team Emirates | 33 |
| 6 | Jack Haig (AUS) | Team Bahrain Victorious | 23 |
| 7 | Sepp Kuss (USA) | Team Jumbo–Visma | 19 |
| 8 | Enric Mas (ESP) | Movistar Team | 17 |
| 9 | Egan Bernal (COL) | Ineos Grenadiers | 16 |
| 10 | Fabio Aru (ITA) | Team Qhubeka NextHash | 16 |

### Young rider classification

Final young rider classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Gino Mäder (SUI) | Team Bahrain Victorious | 84h 07' 02" |
| 2 | Egan Bernal (COL) | Ineos Grenadiers | + 1' 54" |
| 3 | Juan Pedro López (ESP) | Trek–Segafredo | + 19' 48" |
| 4 | Rémy Rochas (FRA) | Cofidis | + 40' 59" |
| 5 | Clément Champoussin (FRA) | AG2R Citroën Team | + 45' 56" |
| 6 | Steff Cras (BEL) | Lotto–Soudal | + 1h 10' 33" |
| 7 | Jefferson Alveiro Cepeda (ECU) | Caja Rural–Seguros RGA | + 1h 47' 21" |
| 8 | Pavel Sivakov (RUS) | Ineos Grenadiers | + 1h 53' 14" |
| 9 | Gotzon Martín (ESP) | Euskaltel–Euskadi | + 1h 59' 06" |
| 10 | Michael Storer (AUS) | Team DSM | + 2h 11' 12" |

### Team classification

Final team classification (1–10) :
| Rank | Team | Time |
| 1 | Team Bahrain Victorious | 252h 19' 35" |
| 2 | Team Jumbo–Visma | + 7' 26" |
| 3 | Ineos Grenadiers | + 32' 18" |
| 4 | UAE Team Emirates | + 1h 05' 10" |
| 5 | Intermarché–Wanty–Gobert Matériaux | + 1h 15' 05" |
| 6 | Movistar Team | + 1h 17' 16" |
| 7 | AG2R Citroën Team | + 1h 43' 04" |
| 8 | Cofidis | + 2h 15' 39" |
| 9 | Trek–Segafredo | + 2h 38' 20" |
| 10 | Team DSM | + 2h 59' 49" |