# 2021 Giro d'Italia

The 2021 Giro d'Italia was the 104th edition of the Giro, a three-week Grand Tour cycling stage race. It started on 8 May and finished on 30 May. On 26 May 2019, the race organisers RCS Sport originally announced that the start of the 2021 Giro (known as the Grande Partenza) would be in Sicily, Italy. However, on 4 February 2021, RCS Sport announced that the race would instead start in Turin, with the rest of the race route being announced on 24 February 2021.
The race was won by Egan Bernal of Ineos Grenadiers, winning his first Giro title and his second Grand Tour victory overall. He became the second Colombian to win the Giro after Nairo Quintana did so in 2014. He first took the maglia rosa when he won atop the gravel finish at Campo Felice on stage 9. He proceeded to extend his lead in the second week, culminating in his victory on the shortened queen stage to Cortina d'Ampezzo. Despite his difficulties in the final week, he still had enough advantage to confirm his victory in Milan. He won by 1' 29" ahead of Damiano Caruso of Team Bahrain Victorious. Going into the race, Caruso was initially supposed to be a domestique for his team's original leader, Mikel Landa. After Landa crashed out on stage 5, Caruso took up the mantle as the team's leader. Caruso proceeded to consistently get high placings on the mountain stages before taking a stage victory on the last mountain stage to Alpe Motta. The last place on the podium was occupied by Simon Yates of Team BikeExchange, 4' 15" behind Bernal. After constantly losing time in the first two weeks, Yates peaked in the third week, leading to him taking a stage victory on the summit finish to Alpe di Mera.
In the race's other classifications, Peter Sagan of Bora–Hansgrohe took the points classification title. He first took the maglia ciclamino after winning the sprint on stage 10. Geoffrey Bouchard of AG2R Citroën Team took the mountains classification title after consistently taking maximum points on the stages' early climbs. As a result of him winning the maglia rosa, Bernal also took home the young riders classification as the best-placed rider under the age of 25. Dries De Bondt of Alpecin–Fenix took home the titles in the intermediate sprint classification and the combativity classification while Simon Pellaud of Androni Giocattoli–Sidermec won the breakaway classification as the rider who had the highest number of kilometres on the breakaway. In the team classifications, Ineos Grenadiers took home the Trofeo Fast Team as the team whose top three riders had the lowest aggregate time while Team Bahrain Victorious took home the fair play classification as one of the three teams who did not get any sanction in the whole race. They won the tiebreaker as a result of Caruso taking the second place in the GC.

## Teams

Twenty-three teams received invitations to participate in the 2021 Giro d'Italia. All nineteen UCI WorldTeams were entitled and obliged to enter the race, and they were joined by four second-tier UCI ProTeams. Alpecin–Fenix, the best-performing UCI ProTeam in 2020, received an automatic invitation, while the other three teams were selected by RCS Sport, the organisers of the Giro. Bardiani–CSF–Faizanè and Vini Zabù continued their streak of wild card invitations to the race, while Eolo–Kometa made its Grand Tour debut. The teams were announced on 10 February 2021.
On 15 April 2021, after positive doping tests for Matteo Spreafico and Matteo De Bonis left them facing a potential suspension, Vini Zabù withdrew their participation from the race. As a result, regular invitee Androni Giocattoli–Sidermec, which had participated in the last three Giros but had initially missed out on an invitation, were awarded the last wildcard invitation.
The teams participating in the race are:
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 Assos
* Trek–Segafredo
* UAE Team Emirates
UCI ProTeams
* Alpecin–Fenix
* Androni Giocattoli–Sidermec
* Bardiani–CSF–Faizanè
* Eolo–Kometa

## Pre-race favourites

The pre-race favourites were the 2019 Tour de France champion Egan Bernal (Ineos Grenadiers) and Simon Yates (Team BikeExchange), who won the lead-up race, Tour of the Alps. Their main challenger was considered to be Remco Evenepoel (Deceuninck–Quick-Step), despite not having raced since a crash in the 2020 Il Lombardia. Other top contenders were Hugh Carthy (EF Education–Nippo), after his third place in the 2020 Vuelta a España, former podium finisher Mikel Landa (Team Bahrain Victorious), Emanuel Buchmann (Bora–Hansgrohe), Aleksandr Vlasov (Astana–Premier Tech), Pavel Sivakov (Ineos Grenadiers), and two Maglia Rosa wearers from the 2020 edition – João Almeida (Deceuninck–Quick-Step) and Jai Hindley (Team DSM), the eventual 2020 runner-up. Multiple Grand Tour winner Vincenzo Nibali also started the race, but due to only recently having recovered from injury, was not mentioned among the favourites.
Riders believed to be the main contenders for victories on the sprint stages were Caleb Ewan (Lotto–Soudal), Peter Sagan (Bora–Hansgrohe), Dylan Groenewegen (Team Jumbo–Visma), Fernando Gaviria (UAE Team Emirates), Elia Viviani (Cofidis), Giacomo Nizzolo (Team Qhubeka Assos) and Tim Merlier (Alpecin–Fenix).

## Route and stages

The full route, consisting of 21 stages covering a distance of 3,479.9 kilometres (2,162.3 mi) and an elevation gain of over 47,000 metres (154,000 ft), was announced by RCS Sport on 24 February 2021. The race was bookended by two individual time trials in Turin and Milan, respectively. There were six summit finishes, the first of which is on stage 6 to Ascoli Piceno. The summit finishes also included the infamous Monte Zoncolan on stage 14 and three of the last five stages. There were also six stages designed for the sprinters to contest and two rest days, after the tenth and sixteenth stages.
Though stage 16 to Cortina d'Ampezzo did not feature a summit finish, it was initially earmarked as the queen stage by race organisers, as riders were due to cover over 5,700 metres (18,700 ft) of elevation gain, and the Passo Pordoi was due to award the Cima Coppi award to the first rider to cross it as the highest climb of the race. However, due to poor weather, the stage was rerouted to remove the Pordoi and Fedaia, significantly shortening it and leaving the Passo Giau as the only climb in the Dolomites. With the removal of the Passo Pordoi, the Passo Giau also became the Cima Coppi of the race.
The nineteenth stage was also changed three days before it was run. The original route had the riders climb the Mottarone climb and then descend into Gignese, however, following the Stresa–Mottarone cable car crash, the route was changed out of respect to those affected to remove the climb, leading the riders straight to Gignese. The stage was shortened by 10 kilometres (6.2 mi).
Stage characteristics and winners :
| Stage | Date | Course | Distance | Type | Type | Winner |
| 1 | 8 May | Torino to Torino | 8.6 km (5.3 mi) | | Individual time trial | Filippo Ganna (ITA) |
| 2 | 9 May | Stupinigi (Nichelino) to Novara | 179 km (111 mi) | | Flat stage | Tim Merlier (BEL) |
| 3 | 10 May | Biella to Canale | 190 km (120 mi) | | Hilly stage | Taco van der Hoorn (NED) |
| 4 | 11 May | Piacenza to Sestola | 187 km (116 mi) | | Intermediate stage | Joe Dombrowski (USA) |
| 5 | 12 May | Modena to Cattolica | 177 km (110 mi) | | Flat stage | Caleb Ewan (AUS) |
| 6 | 13 May | Grotte di Frasassi to Ascoli Piceno (San Giacomo) | 160 km (99 mi) | | Intermediate stage | Gino Mäder (SUI) |
| 7 | 14 May | Notaresco to Termoli | 181 km (112 mi) | | Flat stage | Caleb Ewan (AUS) |
| 8 | 15 May | Foggia to Guardia Sanframondi | 170 km (110 mi) | | Intermediate stage | Victor Lafay (FRA) |
| 9 | 16 May | Castel di Sangro to Campo Felice (Rocca di Cambio) | 158 km (98 mi) | | Mountain stage | Egan Bernal (COL) |
| 10 | 17 May | L'Aquila to Foligno | 139 km (86 mi) | | Flat stage | Peter Sagan (SVK) |
| | 18 May | Foligno | Foligno | | Rest day | Rest day |
| 11 | 19 May | Perugia to Montalcino | 162 km (101 mi) | | Hilly stage | Mauro Schmid (SUI) |
| 12 | 20 May | Siena to Bagno di Romagna | 212 km (132 mi) | | Intermediate stage | Andrea Vendrame (ITA) |
| 13 | 21 May | Ravenna to Verona | 198 km (123 mi) | | Flat stage | Giacomo Nizzolo (ITA) |
| 14 | 22 May | Cittadella to Monte Zoncolan | 205 km (127 mi) | | Mountain stage | Lorenzo Fortunato (ITA) |
| 15 | 23 May | Grado to Gorizia | 147 km (91 mi) | | Hilly stage | Victor Campenaerts (BEL) |
| 16 | 24 May | Sacile to Cortina d'Ampezzo | 153 km (95 mi) | | Mountain stage | Egan Bernal (COL) |
| | 25 May | Canazei | Canazei | | Rest day | Rest day |
| 17 | 26 May | Canazei to Sega di Ala | 193 km (120 mi) | | Mountain stage | Dan Martin (IRL) |
| 18 | 27 May | Rovereto to Stradella | 231 km (144 mi) | | Flat stage | Alberto Bettiol (ITA) |
| 19 | 28 May | Abbiategrasso to Alpe di Mera (Valsesia) | 166 km (103 mi) | | Mountain stage | Simon Yates (GBR) |
| 20 | 29 May | Verbania to Valle Spluga (Alpe Motta) | 164 km (102 mi) | | Mountain stage | Damiano Caruso (ITA) |
| 21 | 30 May | Senago to Milan | 30.3 km (18.8 mi) | | Individual time trial | Filippo Ganna (ITA) |
| Total | Total | Total | 3,410.9 km (2,119.4 mi) | 3,410.9 km (2,119.4 mi) | 3,410.9 km (2,119.4 mi) | 3,410.9 km (2,119.4 mi) | 3,410.9 km (2,119.4 mi) |

## Classification leadership

Classification leadership by stage :
| Stage | Winner | General classification | Points classification | Mountains classification | Young rider classification | General Super Team | Intermediate sprint classification | Combativity classification | Breakaway classification | Fair play classification |
| 1 | Filippo Ganna | Filippo Ganna | Filippo Ganna | Not awarded | Filippo Ganna | Team Jumbo–Visma | Not awarded | Filippo Ganna | Not awarded | Ineos Grenadiers |
| 2 | Tim Merlier | Filippo Ganna | Tim Merlier | Vincenzo Albanese | Filippo Ganna | Team Jumbo–Visma | Filippo Ganna | Filippo Ganna | Filippo Tagliani | Ineos Grenadiers |
| 3 | Taco van der Hoorn | Filippo Ganna | Tim Merlier | Vincenzo Albanese | Filippo Ganna | Team Jumbo–Visma | Simon Pellaud | Filippo Ganna | Vincenzo Albanese | Ineos Grenadiers |
| 4 | Joe Dombrowski | Alessandro De Marchi | Tim Merlier | Joe Dombrowski | Attila Valter | Team Bahrain Victorious | Simon Pellaud | Alessandro De Marchi | Vincenzo Albanese | Israel Start-Up Nation |
| 5 | Caleb Ewan | Alessandro De Marchi | Giacomo Nizzolo | Joe Dombrowski | Attila Valter | Team Bahrain Victorious | Filippo Tagliani | Simon Pellaud | Vincenzo Albanese | Israel Start-Up Nation |
| 6 | Gino Mäder | Attila Valter | Giacomo Nizzolo | Gino Mäder | Attila Valter | Team Bahrain Victorious | Filippo Tagliani | Gino Mäder | Vincenzo Albanese | Groupama–FDJ |
| 7 | Caleb Ewan | Attila Valter | Caleb Ewan | Gino Mäder | Attila Valter | Team Bahrain Victorious | Simon Pellaud | Simon Pellaud | Simon Pellaud | Groupama–FDJ |
| 8 | Victor Lafay | Attila Valter | Tim Merlier | Gino Mäder | Attila Valter | Ineos Grenadiers | Simon Pellaud | Simon Pellaud | Simon Pellaud | Groupama–FDJ |
| 9 | Egan Bernal | Egan Bernal | Tim Merlier | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Simon Pellaud | Simon Pellaud | Simon Pellaud | Trek–Segafredo |
| 10 | Peter Sagan | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Simon Pellaud | Simon Pellaud | Simon Pellaud | Trek–Segafredo |
| 11 | Mauro Schmid | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Simon Pellaud | Simon Pellaud | Simon Pellaud | Team Bahrain Victorious |
| 12 | Andrea Vendrame | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Simon Pellaud | Dries De Bondt | Simon Pellaud | Team Bahrain Victorious |
| 13 | Giacomo Nizzolo | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Umberto Marengo | Simon Pellaud | Simon Pellaud | Team Bahrain Victorious |
| 14 | Lorenzo Fortunato | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Umberto Marengo | Simon Pellaud | Simon Pellaud | Team Bahrain Victorious |
| 15 | Victor Campenaerts | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Trek–Segafredo | Umberto Marengo | Dries De Bondt | Simon Pellaud | Team Bahrain Victorious |
| 16 | Egan Bernal | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Trek–Segafredo | Umberto Marengo | Dries De Bondt | Simon Pellaud | Team Bahrain Victorious |
| 17 | Dan Martin | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Dries De Bondt | Dries De Bondt | Simon Pellaud | Team Bahrain Victorious |
| 18 | Alberto Bettiol | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Team DSM | Dries De Bondt | Dries De Bondt | Simon Pellaud | Team Bahrain Victorious |
| 19 | Simon Yates | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Dries De Bondt | Dries De Bondt | Simon Pellaud | Team Bahrain Victorious |
| 20 | Damiano Caruso | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Dries De Bondt | Dries De Bondt | Simon Pellaud | Team Bahrain Victorious |
| 21 | Filippo Ganna | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Dries De Bondt | Dries De Bondt | Simon Pellaud | Team Bahrain Victorious |
| Final | Final | Egan Bernal | Peter Sagan | Geoffrey Bouchard | Egan Bernal | Ineos Grenadiers | Dries De Bondt | Dries De Bondt | Simon Pellaud | Team Bahrain Victorious |
* On stage 2, Edoardo Affini, who was second in the points classification, wore the cyclamen jersey, because first placed Filippo Ganna wore the pink jersey as the leader of the general classification. Because Ganna and Affini were also the first two riders in the young rider classification, Tobias Foss, who was third in the young rider classification, wore the white jersey.
* On stage 3, Edoardo Affini, who was second in the young rider classification, wore the white jersey, because first placed Filippo Ganna wore the pink jersey as the leader of the general classification. For the same reason, Tobias Foss wore the white jersey on stage 4.
* On stage 6, Vincenzo Albanese, who was second in the mountains classification, wore the blue jersey, because first placed Joe Dombrowski didn't start the stage after a crash and a subsequent injury late in stage 5.
* On stages 7–9, Remco Evenepoel, who was second in the young rider classification, wore the white jersey, because first placed Attila Valter wore the pink jersey as the leader of the general classification. On stages 10 and 11, Evenepoel continued wearing the white jersey, but with Egan Bernal as the leader of the general classification. For the same reason, Aleksandr Vlasov wore the white jersey on stages 12–21.

## Race Overview
### The Big Start towards central Italy

The Giro was originally slated to have its stage one Big Start in Sicily, but it was relocated to begin in Turin.
The first stage was a prologue-like short individual time trial just under nine kilometres long. Filippo Ganna won the stage and pink jersey with Edoardo Affini and Tobias Foss making up the rest of the stage podium. This was the second year in a row Ganna won the opening stage. Riders from Ineos Grenadiers took 1st and 10th place as riders from Team Jumbo–Visma and Deceuninck–Quick-Step took six of the other eight places in the top 10. The gap between the important GC riders was wide, from the newcomer Foss and João Almeida finishing 3rd and 4th to Egan Bernal and Mikel Landa finishing 24th and 77th. A three-man breakaway broke clear as soon as the flag dropped on stage 2. The break, composed of Vincenzo Albanese (Eolo–Kometa), Umberto Marengo (Bardiani–CSF–Faizanè), and Filippo Tagliani (Androni Giocattoli–Sidermec) were allowed to build up a gap of +4:20 before the peloton began to bring them back with Albanese taking the points for the mountains jersey. The sprinter's teams did their work neutralizing and exterminating the breakaway threat, setting up a final sprint where Tim Merlier won the day ahead of Giacomo Nizzolo and Elia Viviani. As a result of this victory Merlier took over the lead in the points classification and would defend it for the next few stages.
Prior to the start of stage 2 a moment of silence was held in memory of Wouter Weylandt.
Stage 3 began with heavy rain, but despite the conditions an escape bunch of seven riders eventually formed with Albanese among them as he was seeking to defend his mountains jersey, which he was able to do. Eventually the weather cleared and the gap of the escapees grew to over +6:00 before the peloton began reeling them in. Specifically it was the Bora–Hansgrohe team of Peter Sagan who turned up the pace in an attempt to drop Sagan's rivals and set him up to go for the stage win. With 100 kilometres to go Maciej Bodnar was at the front for Team Bora and the gap was down to +4:20 and continuing to drop. For the majority of the stage Team Bora was the only team doing the chasing. With the peloton continuously closing the gap late in the stage Simon Pellaud made an attack and Taco van der Hoorn was the only other rider able to stay with him. With about ten kilometres to go teams UAE Team Emirates and Cofidis began assisting in bringing back the final escapees in order to give their sprinters a chance at the win. With about nine kilometres to go van der Hoorn launched an attack which dropped Pellaud. As a result, he was the last man up the road during the final few kilometres and he managed to beat the hard charging peloton to the finish line by just four seconds as Davide Cimolai took 2nd and Sagan settled for 3rd. The overall situation had Ganna in the lead by approximately +0:20 ahead of Foss, Almeida, Evenepoel and Cavagna. Stage 4 was another overcast, dreary day except this time the rain was worse towards the end of the stage. A breakaway of 25 riders eventually formed as groups of differing riders attacked, which would eventually produce the stage winner. The gap opened up to +5:00 in relatively little time, but this group didn't build a large enough lead where it would be a certainty the winner would come from it. Francesco Gavazzi (Eolo–Kometa) attacked the small categorized climbs to defend the mountains jersey of his teammate Albanese and about midway through the stage Christopher Juul-Jensen launched an attack at the front of the breakaway which only Quinten Hermans and Rein Taaramäe answered. Hermans was dropped before long and for much of the day Juul-Jensen and Taramae led the race with Taaramäe being in a position to take the pink jersey if the attack was successful. Eventually the duo was caught, by another duo of Alessandro De Marchi of (Israel Start-Up Nation) and Joe Dombrowski of (UAE Team Emirates), both of whom had the opportunity to take the race lead. Dombrowski launched the decisive attack with four kilometres to go and soloed to the line for the stage win, rising to 2nd in the overall standings and also taking over the lead in the mountains classification as De Marchi crossed the finish line in 2nd, but took over the pink jersey. As far as the GC contenders were concerned Aleksandr Vlasov was the highest placed in 7th overall, Evenepoel was in 8th, Hugh Carthy, who finished on the podium in the most recent Grand Tour, was in 10th, Bernal in 11th, Landa in 15th, former winner of all three grand tours Vincenzo Nibali in 25th and Tobias Foss had fallen from 3rd place overall after stage 1 all the way down to 31st at +2:42 behind the leader.
Stage 5 began with Filippo Tagliani of (Androni Giocattoli–Sidermec) and Umberto Marengo attacking early. Due to the success of breakaways during the first week the peloton did not give them much room and they were brought back with just over 100 kilometres remaining in the stage. Another group of three riders attacked later in the stage, but they were caught with 3 kilometres to go as the leadout trains got up to speed for the sprint finish. Caleb Ewan won the day as Nizzolo took 2nd who was followed by Viviani, Sagan and Fernando Gaviria. Nizzolo took over the lead in the points classification from Merlier. During the stage Joe Dombrowski, who was in position to possibly take the pink jersey in the coming stages, hit a race official which caused a multi-rider crash. Pre-race favorite Mikel Landa was seriously injured with broken ribs and a broken collarbone and had to abandon the race leaving Damiano Caruso, a career Domestique, as the team leader for Bahrain Victorious. Dombrowski finished the stage; but after the stage he was evaluated by team medical staff and the following morning he posted a video to fans on social media where he stated, "Hi guys, unfortunately today I won’t be able to start here at the Giro. We did the concussion protocol last night, then followed up again this morning and just... I didn’t pass that, so with the doctors in the team we decided that it was not safe for me to start today." François Bidard was also involved in the crash, and he too would not survive to finish the race. De Marchi kept his lead, Louis Vervaeke moved into Dombrowski's spot and he was followed by Nelson Oliveira and Attila Valter who was leading the best young rider classification. During stage 6 several riders went clear during the first kilometres but Team Israel Start-Up Nation was able to control this initial breakaway. Eventually, six riders went clear about 30 kilometres (19 mi) into the stage, while the duo of Geoffrey Bouchard (AG2R Citroën Team) and Bauke Mollema (Trek–Segafredo) soon gave chase and after a considerable pursuit managed to bridge the gap to the break. The eight-rider break built an advantage of around five and a half minutes. At this point, yet again, the rain began to fall heavily. Eventually Gino Mäder would make a move and attack this group and win the stage as well as take the lead in the mountains classification. The GC riders were very close behind at the finish with Egan Bernal, Remco Evenepoel and Dan Martin coming in at +0:12, and they were followed soon after by Giulio Ciccone, Damiano Caruso and Dani Martinez, who was proving to be the strongest Super-Domestique in the field riding in support of Bernal. Attila Valter survived not far behind these elite riders and moved into the pink jersey, a few seconds ahead of the now 2nd place Evenepoel and 3rd place Bernal. Martin, Ciccone and Yates all moved into the top 10.
Late in the stage a controversial incident occurred with around 12 kilometres (7.5 mi) to go. As a Team BikeExchange team car tried to pull up alongside an official race car to collect rain jackets left behind from their riders, the Team BikeExchange car ran into the back of Deceuninck–Quick-Step rider Pieter Serry, who had just been dropped from the group ahead. Serry managed to escape without injuries before going on to finish the stage. The occupants of the car were both team managers. The driver was expelled from the race and the passenger was given a fine. From the hotel Serry received a phone call and an apology over the incident, which he accepted saying it wasn't a big deal and could have been worse.
Stage 7 saw a trio of riders attack right at the start. Pellaud, Marengo and Mark Christian. Pellaud and Marengo would be involved in numerous breakaway attempts and therefore were highly placed in the Breakaway, Combative Rider and Intermediate Sprints classifications throughout the race. In the end it was a stage for the sprinters and inside the final kilometre as the leadout was in progress Fernando Gaviria made a surprise attack to steal the win but was caught just before the line by Cimolai, Merlier and Ewan, who won the stage and for the first time in his career, the points jersey in a grand tour.

### Central Italy to the Alps

Stage 8 began in Foggia and early in the stage it was crosswinds causing weather related issues as a few splits formed in the main field. An hour or so later things settled down and a breakaway formed. This edition of the breakaway was given some rope, as none of the riders were deemed a threat to the pink jersey of Groupama–FDJ. Gaviria joined the group in search of points and he was joined by Victor Campenaerts of Team Qhubeka, holder of the 'Fastest Hour' record since April 2019. Gaviria took many of the intermediate sprint points and at the end of the day Merlier would move back into the lead in the points classification. Victor Lafay would make the successful move from within the escape bunch and solo for his first career stage win. Francesco Gavazzi made a late attack in an attempt to catch Lafay but came in over +0:30 later with Nikias Arndt right behind him. There were no changes in the overall situation. Stage 9 was the first of seven stages in the 2021 Giro labeled "D", for severe difficulty, because of the hard climbing as well as the final 1.6 kilometres being unpaved "sterrato". Tomasz Marczyński did not start (DNS) the stage due to struggling with post-covid symptoms. There were several attacks throughout the stage including stage winners Mäder and Lafay trying to get an escape started, then thirty kilometres into stage another attempt was made but UAE Team Emirates missed getting a rider into the group and therefore worked at the front of the peloton to bring the group back before they ever had the chance to get away. It started raining again and more escape attempts came, including a final group of 17 riders, which teams FDJ and Ineos rode to control at the front of the main field. Mäder took mountains points early in the day to defend his jersey, but by the end of the stage Geoffrey Bouchard would overtake him and wouldn't relinquish the mountains jersey for the rest of the Giro. In the end the GC riders would fight it out for the win. Gianni Moscon and Dani Martinez rode strongly for Ineos, setting the pace for Egan Bernal. As the end of the stage approached, the gravel section, the final escapees included Mollema of Trek and Michael Storer of DSM chasing the duo of Koen Bouwman riding for Jumbo-Visma and Bouchard of AG2R. With 500 metres to go Vlasov made an attack from the GC group which only Bernal and Ciccone answered. Bernal then put his stamp of authority on the race by attacking again which Ciccone answered briefly and with 400 metres to go they passed the final breakaway riders like they were standing still. Bernal kept the pressure on and crossed the line solo seven seconds ahead of Vlasov and Ciccone. A few seconds later Evenepoel and Martin crossed and two seconds behind them was a group including Almeida, Martinez, Damiano Caruso and Romain Bardet. Valter was dropped and lost the pink jersey to Bernal, but it was late in the stage and he still clung to the top 5 behind Ciccone, Vlasov and Evenepoel. During the stage Matej Mohorič was involved in a serious crash when he hit a crack in the road and was violently thrown over his handlebars as the front wheel completely broke off his bike. He hit his head with force, but never lost consciousness and only abandoned the race due to the insistence of team medical staff.
Stage 10 was a flat stage and the escapes came early in the stage. Marengo and Pellaud went off the front yet again and they were joined by van der Hoorn, Samuele Rivi of team Eolo–Kometa and eventually Kobe Goossens of team Lotto–Soudal. Team Bora rode hard to see to it this escape group was destroyed and the rivals of Sagan were put under as much pressure as possible and if possible, ejected out the back of the peloton. Cesare Benedetti, Felix Grosschartner and Matteo Fabbro forced the pace through the foothills and Emanuel Buchmann, Giovanni Aleotti and Daniel Oss kept the pressure on throughout the day and several elite sprinters were dropped including Nizzolo, Merlier and Dylan Groenewegen. With 43 kilometres to go the breakaway was absorbed back into the bunch and while they had run into a spot of bad luck being forced to stop and wait at a train crossing, the race jury determined this wouldn't have changed the inevitability of the peloton eventually catching them. Inside the final five kilometres Maciej Bodnar set the pace and inside the final three kilometres Team DSM came to the front to get their sprinter, Max Kanter, into position but there was a crash that took out many riders including Kanter. Bernal and Vlasov were also caught up in this, but it was inside the final three kilometres so they didn't lose time. As the finish approached Sagan started his sprint from very far out betting on himself to be able to hold off any pursuers and it paid off as he claimed the win ahead of Gaviria and Cimolai. Sagan also took over the lead in the points classification and would not relinquish it for the remainder of the race. The next day was the first rest day.
Stage 11 contained several gravel sections and the initial breakaway of eleven riders eventually opened up a gap of approximately +14:00 before it started coming down, meaning the stage winner would likely come from the group. These eleven riders stayed out front for most of the day and eventually began attacking one another in the fight for the win. In the GC group there were several attacks and a few highly placed riders dropped out of the top 10 as they were eventually dropped as a result of the pace set by Team Ineos, specifically Filippo Ganna who was trying to create problems for the opponents of Bernal. Remco Evenepoel, who was in 2nd place overall fell into difficulty on the gravel sectors and his teammate João Almeida had to fall back and assist him. He would wind up losing about +2:00 and fall from 2nd to 7th place. Regarding the stage win initially three riders were in the best position in Dries De Bondt, Mauro Schmid and Alessandro Covi but De Bondt would eventually be dropped as Harm Vanhoucke would escape the remnants of the breakaway group. In the end the stage was won by Mauro Schmid, in what was described as a memorable fashion as he overpowered Covi when it came down to the finish. In the GC situation Aleksandr Vlasov was now the only rider within a minute of Bernal as Damiano Caruso rode strongly and rose in the standings to occupy the final podium position. He was followed by Hugh Carthy and Simon Yates as Emanuel Buchmann moved from outside the top 10 to 6th place overall just over +0:30 ahead of 7th place Evenepoel.
During stage 12 a group of sixteen riders eventually broke away and for the second day in a row built an insurmountable gap of over +12:00. Bouchard joined in yet again to collect mountains classification points and built on his lead over Bernal who was defending his overall lead. There were multiple crashes in the stage which would cause the eventual abandons of Alessandro De Marchi and Marc Soler, who was in 11th place overall when he left the race. Among the GC riders there were no major changes and at the end of the day the stage win would be decided from a final group of four riders including Gianluca Brambilla, George Bennett, Andrea Vendrame and Chris Hamilton. Hamilton and Vendrame would get away from Bennett and Brambilla with Vendrame claiming the victory in the two up sprint.
Stage 13 was a return to the flats where the breakaway was limited in number due to the reality of the sprinters' teams being unlikely to give any would-be escapees much chance of success. Three riders eventually formed an escape group, all of whom were familiar faces in the breakaways thus far in the Giro – Samuele Rivi, Umberto Marengo and Simon Pellaud. At most they had a gap of about seven minutes but the peloton gradually brought them back. They managed to survive until inside the final ten kilometres before the sprinters' teams took control. In the end, the sprint was won by Giacomo Nizzolo who narrowly edged out Edoardo Affini. Affini was actually the leadout man for Dylan Groenewegen, however Groenewegen didn't time his sprint properly and finished 10th whereas Affini didn't even realize he rode so strongly and finished 2nd. Fernando Gaviria, who normally would have been competing for a sprint finish like this, suffered a mechanical where he lost his seat in the final kilometre of the race. He was out of the saddle for the entire final kilometre of the stage, yet despite this he still managed a top 5 finish. He described the end of the stage by saying, "It was one of the longest kilometers of my life". The GC situation saw no major changes.

### The High Mountains and Third Week

Neither Dylan Groenewegen nor David Dekker started stage 14 as a result of tactical decisions made by the management of Team Jumbo–Visma before the start of the race. For Dekker it was because this was the first time in his career he had raced every day for two straight weeks and the elite sprinter Groenewegen was just coming back after a considerable absence from racing. GC contender Jai Hindley also did not start the stage. The stage began with the first 130 kilometres or so being mostly flat and a breakaway group got a gap of just under nine minutes. Astana–Premier Tech put in a lot of the work at the front of the main field and was attempting to get Aleksandr Vlasov in a good position for the upcoming climb on Monte Zoncolan. Edoardo Affini and Jacopo Mosca put in a great deal of work at the front of the breakaway group in an attempt to get their teammates George Bennett and Bauke Mollema the opportunity to go for the stage win. The group still had a gap of about 6 minutes as the Zoncolan began. Jan Tratnik attacked the breakaway group and only Lorenzo Fortunato eventually made the move to go with him although Alessandro Covi, Bennett and Mollema were not far behind initially. In the end Fortunato beat Tratnik to the line by about thirty seconds to claim the stage win. In the GC situation, the most important attack of the day came from Simon Yates, which no one could initially answer. Egan Bernal eventually went after him and passed him. Bernal crossed the finish line in 4th place, gaining 11 seconds on Yates and more than that on everyone else. In the overall situation he now led Yates in 2nd place by +1:33 and Damiano Caruso in 3rd place by +1:51. Vlasov fell to 4th and he was followed by Carthy, Buchmann, Ciccone and Remco Evenepoel who held on to remain in 8th place at +3:52. 9th place was now occupied by Bernal's teammate Dani Martínez, who was proving himself to be the strongest Super-Domestique in the race.
Stage 15 began with a serious crash involving dozens of riders barely three minutes after 'the race is on' was declared, forcing race officials to neutralize the race for 35 minutes while bikes were fixed or replaced and torn clothes were changed. The sprinter Giacomo Nizzolo did not start the stage having suffered too much over the previous mountain stages and as a result of the crash Natnael Berhane, Jos van Emden and Emanuel Buchmann, who was still in 6th place overall, abandoned the race. Late in the stage it began raining, which worked to the benefit of the breakaway group which had built enough of a gap to ensure the winner would come from among them. In the end seven riders were within ten seconds at the finish line where Victor Campenaerts of Team Qhubeka Assos narrowly defeated Oscar Riesebeek of Alpecin–Fenix for the stage win. The GC situation remained the same, but due to the withdrawal of Buchmann Tobias Foss, who had fallen as low as 31st place earlier in the race, entered the top 10.
Stage 16 was intended to be the Queen Stage and was scheduled to begin in Sacile and cover 212 kilometres before ending in Cortina d'Ampezzo. The temperature at the start was 47 °F (8 °C) with rain, which meant in the high mountain passes it would be snowing. As a result, race officials decided to eliminate a total of 59 kilometres, including the scheduled Cima Coppi leaving only the La Crosseta and Giau Pass as major climbs to be dealt with, with the Giau becoming the new Cima Coppi at 2,236 metres (7,336 ft). The new stage total would be 153 kilometres and 153 riders signed in to start the stage with veteran Thomas de Gendt being added to the DNS list as he was suffering with knee pain. Initially there was breakaway group of 24 riders with many very strong riders among them including some GC caliber riders who were no longer contending for the overall win in Vincenzo Nibali, João Almeida and Dan Martin as well as several others including Davide Formolo, Antonio Pedrero and Geoffrey Bouchard who was tightening his grip on the King of the Mountains competition. The maximum advantage they were able to build was only about five minutes and by the time of the final climb the deficit back to the GC favorites group of Bernal was only about a minute. There were many attacks from within this group and among them Nibali, Formolo and Pedrero were riding very strong, but eventually Bernal launched an attack to break the rest of his competitors and put a stranglehold on his lead. Vlasov suffered a mechanical at an inopportune time and was dropped from the GC group, Yates was not able to match Bernal's pace, neither was Carthy and Evenepoel came unhinged and lost over twenty minutes by the end of the day. Bernal was the first across the summit of the Giau Pass and maintained his lead all the way to the finish line to take his second stage win. The only two riders who finished within a minute of him were Romain Bardet and Damiano Caruso who both crossed the line at +0:27. Following the win Bernal said, "I wanted to put on a show, this is the kind of cycling I like, when it's wet and cold and you need grit". In the overall situation Bernal now led 2nd place Caruso by +2:24. In 3rd was Hugh Carthy and he was followed by Vlasov, Yates and Giulio Ciccone each of whom were over four minutes behind. The next day was the second and final rest day.
Stage 17 would include another day of several hard climbs and the breakaway attempts would begin early in the day, though the escapees would not find much success in the first fifty or so kilometres due to the efforts of Team Ineos. Once the break was away Team Bike Exchange worked to limit their advantage. Eventually a group of nearly twenty would break free including Gianni Moscon, Antonio Pedrero, Dan Martin, Geoffrey Bouchard, Giovanni Carboni of Team Bardiani–CSF–Faizanè and Simone Ravanelli of Team Androni Giocattoli–Sidermec. Dan Martin attacked the surviving escape group at the bottom of the final climb as the GC group was only about ninety seconds behind. In the GC group Almeida made an attack no one else answered. He was in 10th place overall so wasn't a major threat to Bernal and eventually Simon Yates launched an attack of his own with four kilometres to go. This attack was a bit more noticeable as he was in 5th overall, and initially it put Bernal into a bit of difficulty. By the end of the day Dan Martin won the stage. This victory made him one of only about a hundred cyclists to win a stage in all three grand tours. As he retired at the end of the 2021 season this ended up being the fifth and final grand tour stage win of his career. In the GC situation Almeida crossed the line 2nd, and jumped up to 8th place overall, in the process he became the team leader of Deceuninck–Quick-Step being as Evenepoel had a tough day and would not start stage 18. Yates finished 3rd and also moved into 3rd in the overall standings. Bernal had Dani Martínez assisting him throughout the stage and limited his losses to under a minute on Yates. Bernal led Caruso by +2:21 and Yates by +3:23. Vlasov, Carthy and Bardet trailed by more than +6:00 and 7th was now occupied by Bernal's teammate Dani Martínez.
Stage 18 saw 147 riders sign in to start the stage. In addition to Evenepoel, Nicholas Schultz and Giulio Ciccone of Trek–Segafredo would not start. Not feeling strong enough to start after the crash he suffered the previous day, Ciccone gave up his 10th place in the GC. Right from the starting gun the attacks came in an attempt to get a breakaway formed. For the first 30 kilometres or so all attempts were frustrated, but eventually a group of about two dozen riders broke clear. Stage 18 was the longest of the race at 231 kilometres and it would be a hilly finish with four small climbs, one of which was categorized, which meant this would be the last opportunity for Davide Cimolai, Fernando Gaviria and Elia Viviani to gain on Peter Sagan in the points classification being as the final three stages were mountains stages and a time trial. Sagan would maintain his lead and by the end of the day the stage win was going to come from the breakaway yet again. Team DSM had several riders fighting for this win including Roche, Arndt and Denz and other riders including Natnael Tesfatsion and Filippo Zana were in contention as the end of stage approached. As was Rémi Cavagna who had attacked the breakaway and rode off on his own, but eventually Alberto Bettiol of Team EF Education–Nippo was able to drop all of the remaining breakaway riders, including Cavagna, and solo to victory. Essentially being a flat stage there were no major changes atop the general classification.
Stage 19 was a high mountain stage, but saw a small change in its original route due to a tragic cable car crash a few days earlier. The peloton decided to give all of the prize money from stage 19 to the victims of this incident.
The first true breakaway formed about thirty kilometres into the stage, but they never extended their advantage much beyond +4:00 meaning the day would likely be decided in a battle between GC riders. Team BikeExchange drove a hard pace for the benefit of Yates and Team Deceuninck–Quick-Step rode hard throughout the stage for Almeida attempting to get him in position to climb up in the GC and go for a stage win. At times the pace was so ferocious that the peloton split into two groups catching out Bernal's most important lieutenant Dani Martínez. The powerful ITT specialist Filippo Ganna dropped back to assist Martínez in getting back to this group so he could be there for Bernal at the end of the stage. By the time of the final climb only one final breakaway rider remained in Mark Christian, of Team Eolo–Kometa, but with the pace of the GC riders it was inevitable he would be caught and dropped off the back, which he soon was. With about seven kilometres to go Almeida launched an attack to go for the stage win. With 6.3 kilometres to go Yates also attacked and he was joined by Bennett, Vlasov and Caruso as Jonathan Castroviejo and Martínez made sure Bernal would not fall into danger of losing serious time. Hugh Carthy, fighting for 5th place in the GC, also left the Maglia Rosa group in pursuit of the elite group at the front of the race. With 5.5 kilometres to go Yates attacked this group and went off on his own as Martínez took control of the group behind causing several more riders to be dropped. For the next three kilometres Carthy, Vlasov, Bennett and Almeida had fallen back to the Bernal group as Yates struggled to force a gap, but eventually managed to get away. At one point he would have a lead close to +0:40, as Bernal clung to the wheel of Martínez biding his time. Martínez would pull Yates back to within +0:24 when finally, with 2.5 kilometres to go Bernal went off in pursuit, only taking Almeida with him. Almeida came within about ten seconds of catching Yates as Bernal lost just under thirty seconds, while gaining an additional four seconds over Caruso.
Stage 20 was the final stage in the high mountains and it turned into a battle of Damiano Caruso trying to win the stage and the Giro d'Italia. Caruso had teammate Pello Bilbao to assist him much of the stage as Michael Storer and Romain Bardet of Team DSM were at or near the front of the race for most of the day. In the end Caruso had managed to drop everyone and was riding for the stage win and solidifying his 2nd place overall as Yates was unable to stay with either Caruso or Bernal. Dani Martínez gave maximum effort to keep Caruso within striking distance and as the end of the stage neared Bernal rode off in pursuit of Caruso limiting his losses to +0:24. Eleven seconds later Martínez and Bardet crossed the line and the only other riders within a minute were Almeida and Yates. Yates remained in 3rd, now +3:23 behind as Bernal's lead over the surprising Caruso was cut +1:59 going into the final ITT in stage 21.
On the final stage in Milan Bernal rode strongly enough to secure his victory. The stage victory went to Filippo Ganna who was able to defeat Cavagna and Affini by over ten seconds. The highest placed GC rider was João Almeida who finished 5th and jumped up to a tie for 5th in the overall classification with Dani Martínez, but the tiebreaker went in favor of Martínez. Romain Bardet, who grew stronger as the race progressed eventually getting as high as 5th overall, had a tough day in the time trial and dropped to 7th place. Vlasov secured his 4th finish and the podium was filled by Yates, Caruso and Bernal. The points classification was won by Peter Sagan, the mountains classification was won by Geoffrey Bouchard, the best young rider was also claimed by Bernal and his team Ineos Grenadiers won the team classification. The fair play classification went to Team Bahrain Victorious of Caruso. Dries De Bondt won the sprints and combativity classifications and the breakaway classification was won by Simon Pellaud.
With this victory Egan Bernal won his second grand tour and became the second Colombian rider, after Nairo Quintana, to win the Giro d'Italia.

## Final classification standings

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

### General classification

Final general classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 86h 17' 28" |
| 2 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 1' 29" |
| 3 | Simon Yates (GBR) | Team BikeExchange | + 4' 15" |
| 4 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 6' 40" |
| 5 | Daniel Martínez (COL) | Ineos Grenadiers | + 7' 24" |
| 6 | João Almeida (POR) | Deceuninck–Quick-Step | + 7' 24" |
| 7 | Romain Bardet (FRA) | Team DSM | + 8' 05" |
| 8 | Hugh Carthy (GBR) | EF Education–Nippo | + 8' 56" |
| 9 | Tobias Foss (NOR) | Team Jumbo–Visma | + 11' 44" |
| 10 | Dan Martin (IRL) | Israel Start-Up Nation | + 18' 35" |
Final general classification (11–143) :
| Rank | Rider | Team | Time |
| 11 | George Bennett (NZL) | Team Jumbo–Visma | + 25' 35" |
| 12 | Koen Bouwman (NED) | Team Jumbo–Visma | + 30' 56" |
| 13 | Pello Bilbao (ESP) | Team Bahrain Victorious | + 37' 58" |
| 14 | Attila Valter (HUN) | Groupama–FDJ | + 45' 30" |
| 15 | Davide Formolo (ITA) | UAE Team Emirates | + 47' 21" |
| 16 | Lorenzo Fortunato (ITA) | Eolo–Kometa | + 47' 31" |
| 17 | Diego Ulissi (ITA) | UAE Team Emirates | + 56' 32" |
| 18 | Vincenzo Nibali (ITA) | Trek–Segafredo | + 1h 03' 59" |
| 19 | Gorka Izagirre (ESP) | Astana–Premier Tech | + 1h 04' 12" |
| 20 | Louis Vervaeke (BEL) | Alpecin–Fenix | + 1h 05' 19" |
| 21 | Tanel Kangert (EST) | Team BikeExchange | + 1h 07' 25" |
| 22 | Antonio Pedrero (ESP) | Movistar Team | + 1h 07' 50" |
| 23 | Jonathan Castroviejo (ESP) | Ineos Grenadiers | + 1h 18' 16" |
| 24 | Gianni Moscon (ITA) | Ineos Grenadiers | + 1h 18' 17" |
| 25 | Mikel Nieve (ESP) | Team BikeExchange | + 1h 20' 58" |
| 26 | Jan Hirt (CZE) | Intermarché–Wanty–Gobert Matériaux | + 1h 32' 42" |
| 27 | Nelson Oliveira (POR) | Movistar Team | + 1h 36' 27" |
| 28 | Bauke Mollema (NED) | Trek–Segafredo | + 1h 36' 47" |
| 29 | Francesco Gavazzi (ITA) | Eolo–Kometa | + 1h 40' 19" |
| 30 | Alberto Bettiol (ITA) | EF Education–Nippo | + 1h 43' 43" |
| 31 | Michael Storer (AUS) | Team DSM | + 1h 49' 05" |
| 32 | Matteo Fabbro (ITA) | Bora–Hansgrohe | + 1h 49' 23" |
| 33 | Luis León Sánchez (ESP) | Astana–Premier Tech | + 1h 49' 52" |
| 34 | Matteo Badilatti (SUI) | Groupama–FDJ | + 1h 51' 47" |
| 35 | Giovanni Carboni (ITA) | Bardiani–CSF–Faizanè | + 2h 00' 45" |
| 36 | Harold Tejada (COL) | Astana–Premier Tech | + 2h 01' 12" |
| 37 | Rudy Molard (FRA) | Groupama–FDJ | + 2h 02' 01" |
| 38 | Alessandro Covi (ITA) | UAE Team Emirates | + 2h 03' 30" |
| 39 | Einer Rubio (COL) | Movistar Team | + 2h 03' 56" |
| 40 | Vadim Pronskiy (KAZ) | Astana–Premier Tech | + 2h 03' 59" |
| 41 | Larry Warbasse (USA) | AG2R Citroën Team | + 2h 05' 59" |
| 42 | Felix Großschartner (AUT) | Bora–Hansgrohe | + 2h 12' 10" |
| 43 | Quinten Hermans (BEL) | Intermarché–Wanty–Gobert Matériaux | + 2h 13' 57" |
| 44 | Simone Petilli (ITA) | Intermarché–Wanty–Gobert Matériaux | + 2h 14' 12" |
| 45 | Chris Hamilton (AUS) | Team DSM | + 2h 17' 55" |
| 46 | Edward Ravasi (ITA) | Eolo–Kometa | + 2h 18' 40" |
| 47 | Eduardo Sepúlveda (ARG) | Androni Giocattoli–Sidermec | + 2h 20' 12" |
| 48 | Patrick Bevin (NZL) | Israel Start-Up Nation | + 2h 21' 29" |
| 49 | Jhonatan Narváez (ECU) | Ineos Grenadiers | + 2h 21' 53" |
| 50 | Andrea Vendrame (ITA) | AG2R Citroën Team | + 2h 23' 42" |
| 51 | Rein Taaramäe (EST) | Intermarché–Wanty–Gobert Matériaux | + 2h 24' 46" |
| 52 | Jacopo Mosca (ITA) | Trek–Segafredo | + 2h 27' 00" |
| 53 | James Knox (GBR) | Deceuninck–Quick-Step | + 2h 29' 17" |
| 54 | Dario Cataldo (ITA) | Movistar Team | + 2h 29' 24" |
| 55 | Davide Villella (ITA) | Movistar Team | + 2h 29' 51" |
| 56 | Pieter Serry (BEL) | Deceuninck–Quick-Step | + 2h 30' 40" |
| 57 | Kilian Frankiny (SUI) | Team Qhubeka Assos | + 2h 34' 36" |
| 58 | Geoffrey Bouchard (FRA) | AG2R Citroën Team | + 2h 36' 35" |
| 59 | Nicolas Roche (IRL) | Team DSM | + 2h 41' 13" |
| 60 | Tony Gallopin (FRA) | AG2R Citroën Team | + 2h 46' 05" |
| 61 | Matteo Sobrero (ITA) | Astana–Premier Tech | + 2h 47' 16" |
| 62 | Nikias Arndt (GER) | Team DSM | + 2h 56' 04" |
| 63 | Amanuel Ghebreigzabhier (ERI) | Trek–Segafredo | + 2h 59' 03" |
| 64 | Lars van den Berg (NED) | Groupama–FDJ | + 3h 13' 49" |
| 65 | Jimmy Janssens (BEL) | Alpecin–Fenix | + 3h 15' 06" |
| 66 | Simon Carr (GBR) | EF Education–Nippo | + 3h 18' 32" |
| 67 | Andrii Ponomar (UKR) | Androni Giocattoli–Sidermec | + 3h 18' 33" |
| 68 | Rémi Cavagna (FRA) | Deceuninck–Quick-Step | + 3h 19' 43" |
| 69 | Simon Pellaud (SUI) | Androni Giocattoli–Sidermec | + 3h 20' 10" |
| 70 | Jan Tratnik (SLO) | Team Bahrain Victorious | + 3h 22' 28" |
| 71 | Simone Ravanelli (ITA) | Androni Giocattoli–Sidermec | + 3h 22' 30" |
| 72 | Andrea Pasqualon (ITA) | Intermarché–Wanty–Gobert Matériaux | + 3h 23' 57" |
| 73 | Filippo Zana (ITA) | Bardiani–CSF–Faizanè | + 3h 28' 45" |
| 74 | Guy Niv (ISR) | Israel Start-Up Nation | + 3h 33' 32" |
| 75 | Vincenzo Albanese (ITA) | Eolo–Kometa | + 3h 34' 13" |
| 76 | Mark Christian (GBR) | Eolo–Kometa | + 3h 35' 44" |
| 77 | Yukiya Arashiro (JPN) | Team Bahrain Victorious | + 3h 36' 24" |
| 78 | Jens Keukeleire (BEL) | EF Education–Nippo | + 3h 37' 24" |
| 79 | Stefano Oldani (ITA) | Lotto–Soudal | + 3h 39' 11" |
| 80 | Giovanni Aleotti (ITA) | Bora–Hansgrohe | + 3h 40' 28" |
| 81 | Mikkel Frølich Honoré (DEN) | Deceuninck–Quick-Step | + 3h 41' 43" |
| 82 | Samuele Battistella (ITA) | Astana–Premier Tech | + 3h 45' 57" |
| 83 | Callum Scotson (AUS) | Team BikeExchange | + 3h 46' 05" |
| 84 | Tejay van Garderen (USA) | EF Education–Nippo | + 3h 46' 16" |
| 85 | Enrico Battaglin (ITA) | Bardiani–CSF–Faizanè | + 3h 47' 55" |
| 86 | Harm Vanhoucke (BEL) | Lotto–Soudal | + 3h 49' 07" |
| 87 | Gianni Vermeersch (BEL) | Alpecin–Fenix | + 3h 52' 52" |
| 88 | Romain Seigle (FRA) | Groupama–FDJ | + 3h 55' 23" |
| 89 | Valerio Conti (ITA) | UAE Team Emirates | + 3h 58' 45" |
| 90 | Simon Guglielmi (FRA) | Groupama–FDJ | + 3h 59' 46" |
| 91 | Dries De Bondt (BEL) | Alpecin–Fenix | + 4h 03' 03" |
| 92 | Natnael Tesfatsion (ERI) | Androni Giocattoli–Sidermec | + 4h 03' 27" |
| 93 | Mauro Schmid (SUI) | Team Qhubeka Assos | + 4h 03' 47" |
| 94 | Salvatore Puccio (ITA) | Ineos Grenadiers | + 4h 04' 23" |
| 95 | Giovanni Visconti (ITA) | Bardiani–CSF–Faizanè | + 4h 04' 45" |
| 96 | Rafael Valls (ESP) | Team Bahrain Victorious | + 4h 04' 52" |
| 97 | Christopher Juul-Jensen (DEN) | Team BikeExchange | + 4h 05' 47" |
| 98 | Matteo Jorgenson (USA) | Movistar Team | + 4h 05' 48" |
| 99 | Paul Martens (GER) | Team Jumbo–Visma | + 4h 09' 07" |
| 100 | Márton Dina (HUN) | Eolo–Kometa | + 4h 11' 55" |
| 101 | Senne Leysen (BEL) | Alpecin–Fenix | + 4h 15' 22" |
| 102 | Nico Denz (GER) | Team DSM | + 4h 16' 02" |
| 103 | Cesare Benedetti (ITA) | Bora–Hansgrohe | + 4h 26' 44" |
| 104 | Oscar Riesebeek (NED) | Alpecin–Fenix | + 4h 33' 33" |
| 105 | Samuele Zoccarato (ITA) | Bardiani–CSF–Faizanè | + 4h 33' 49" |
| 106 | Davide Gabburo (ITA) | Bardiani–CSF–Faizanè | + 4h 35' 44" |
| 107 | Taco van der Hoorn (NED) | Intermarché–Wanty–Gobert Matériaux | + 4h 35' 49" |
| 108 | Filippo Fiorelli (ITA) | Bardiani–CSF–Faizanè | + 4h 36' 05" |
| 109 | Fernando Gaviria (COL) | UAE Team Emirates | + 4h 37' 48" |
| 110 | Simone Consonni (ITA) | Cofidis | + 4h 38' 16" |
| 111 | Cameron Meyer (AUS) | Team BikeExchange | + 4h 38' 42" |
| 112 | Daniel Oss (ITA) | Bora–Hansgrohe | + 4h 42' 49" |
| 113 | Edoardo Affini (ITA) | Team Jumbo–Visma | + 4h 43' 51" |
| 114 | Alexis Gougeard (FRA) | AG2R Citroën Team | + 4h 43' 57" |
| 115 | Antoine Duchesne (CAN) | Groupama–FDJ | + 4h 43' 58" |
| 116 | Max Kanter (GER) | Team DSM | + 4h 46' 24" |
| 117 | Peter Sagan (SVK) | Bora–Hansgrohe | + 4h 46' 24" |
| 118 | Filippo Ganna (ITA) | Ineos Grenadiers | + 4h 47' 40" |
| 119 | Lawrence Naesen (BEL) | AG2R Citroën Team | + 4h 47' 48" |
| 120 | Michael Hepburn (AUS) | Team BikeExchange | + 4h 47' 58" |
| 121 | Iljo Keisse (BEL) | Deceuninck–Quick-Step | + 4h 50' 45" |
| 122 | Bert-Jan Lindeman (NED) | Team Qhubeka Assos | + 4h 58' 29" |
| 123 | Filippo Tagliani (ITA) | Androni Giocattoli–Sidermec | + 4h 59' 05" |
| 124 | Max Walscheid (GER) | Team Qhubeka Assos | + 4h 59' 37" |
| 125 | Julius van den Berg (NED) | EF Education–Nippo | + 5h 00' 11" |
| 126 | Juan Sebastián Molano (COL) | UAE Team Emirates | + 5h 01' 04" |
| 127 | Davide Cimolai (ITA) | Israel Start-Up Nation | + 5h 02' 16" |
| 128 | Wesley Kreder (NED) | Intermarché–Wanty–Gobert Matériaux | + 5h 02' 43" |
| 129 | Samuele Rivi (ITA) | Eolo–Kometa | + 5h 02' 59" |
| 130 | Matthias Brändle (AUT) | Israel Start-Up Nation | + 5h 03' 34" |
| 131 | Łukasz Wiśniowski (POL) | Team Qhubeka Assos | + 5h 08' 11" |
| 132 | Nicola Venchiarutti (ITA) | Androni Giocattoli–Sidermec | + 5h 08' 13" |
| 133 | Fabio Sabatini (ITA) | Cofidis | + 5h 09' 16" |
| 134 | Koen de Kort (NED) | Trek–Segafredo | + 5h 11' 05" |
| 135 | Elia Viviani (ITA) | Cofidis | + 5h 12' 15" |
| 136 | Maciej Bodnar (POL) | Bora–Hansgrohe | + 5h 14' 42" |
| 137 | Maximiliano Richeze (ARG) | UAE Team Emirates | + 5h 17' 22" |
| 138 | Albert Torres (ESP) | Movistar Team | + 5h 17' 26" |
| 139 | Umberto Marengo (ITA) | Bardiani–CSF–Faizanè | + 5h 19' 06" |
| 140 | Alexander Krieger (GER) | Alpecin–Fenix | + 5h 25' 02" |
| 141 | Matteo Moschetti (ITA) | Trek–Segafredo | + 5h 29' 21" |
| 142 | Attilio Viviani (ITA) | Cofidis | + 5h 29' 40" |
| 143 | Riccardo Minali (ITA) | Intermarché–Wanty–Gobert Matériaux | + 5h 35' 49" |

### Points classification

Final points classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Peter Sagan (SVK) | Bora–Hansgrohe | 136 |
| 2 | Davide Cimolai (ITA) | Israel Start-Up Nation | 118 |
| 3 | Fernando Gaviria (COL) | UAE Team Emirates | 116 |
| 4 | Elia Viviani (ITA) | Cofidis | 86 |
| 5 | Egan Bernal (COL) | Ineos Grenadiers | 80 |
| 6 | Dries De Bondt (BEL) | Alpecin–Fenix | 71 |
| 7 | Andrea Pasqualon (ITA) | Intermarché–Wanty–Gobert Matériaux | 61 |
| 8 | Simone Consonni (ITA) | Cofidis | 60 |
| 9 | Edoardo Affini (ITA) | Team Jumbo–Visma | 59 |
| 10 | Alberto Bettiol (ITA) | EF Education–Nippo | 57 |

### Mountains classification

Final mountains classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Geoffrey Bouchard (FRA) | AG2R Citroën Team | 184 |
| 2 | Egan Bernal (COL) | Ineos Grenadiers | 140 |
| 3 | Damiano Caruso (ITA) | Team Bahrain Victorious | 99 |
| 4 | Dan Martin (IRL) | Israel Start-Up Nation | 83 |
| 5 | Simon Yates (GBR) | Team BikeExchange | 61 |
| 6 | João Almeida (POR) | Deceuninck–Quick-Step | 54 |
| 7 | Bauke Mollema (NED) | Trek–Segafredo | 53 |
| 8 | Lorenzo Fortunato (ITA) | Eolo–Kometa | 52 |
| 9 | Romain Bardet (FRA) | Team DSM | 49 |
| 10 | Michael Storer (AUS) | Team DSM | 46 |

### Young rider classification

Final young rider classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 86h 17' 28" |
| 2 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 6' 40" |
| 3 | Daniel Martínez (COL) | Ineos Grenadiers | + 7' 24" |
| 4 | João Almeida (POR) | Deceuninck–Quick-Step | + 7' 24" |
| 5 | Tobias Foss (NOR) | Team Jumbo–Visma | + 11' 44" |
| 6 | Attila Valter (HUN) | Groupama–FDJ | + 45' 30" |
| 7 | Lorenzo Fortunato (ITA) | Eolo–Kometa | + 47' 31" |
| 8 | Michael Storer (AUS) | Team DSM | + 1h 49' 05" |
| 9 | Harold Tejada (COL) | Astana–Premier Tech | + 2h 01' 12" |
| 10 | Alessandro Covi (ITA) | UAE Team Emirates | + 2h 03' 30" |

### Team classification

Final team classification (1–10) :
| Rank | Team | Time |
| 1 | Ineos Grenadiers | 259h 30' 31" |
| 2 | Team Jumbo–Visma | + 26' 52" |
| 3 | Team DSM | + 29' 09" |
| 4 | Astana–Premier Tech | + 33' 05" |
| 5 | Team BikeExchange | + 1h 15' 12" |
| 6 | Trek–Segafredo | + 1h 27' 09" |
| 7 | Movistar Team | + 1h 28' 18" |
| 8 | Deceuninck–Quick-Step | + 1h 37' 51" |
| 9 | Team Bahrain Victorious | + 1h 51' 05" |
| 10 | UAE Team Emirates | + 1h 54' 04" |

### Intermediate sprint classification

Final intermediate sprint classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Dries De Bondt (BEL) | Alpecin–Fenix | 70 |
| 2 | Umberto Marengo (ITA) | Bardiani–CSF–Faizanè | 64 |
| 3 | Simon Pellaud (SUI) | Androni Giocattoli–Sidermec | 53 |
| 4 | Samuele Rivi (ITA) | Eolo–Kometa | 32 |
| 5 | Filippo Tagliani (ITA) | Androni Giocattoli–Sidermec | 30 |
| 6 | Francesco Gavazzi (ITA) | Eolo–Kometa | 23 |
| 7 | Andrea Pasqualon (ITA) | Intermarché–Wanty–Gobert Matériaux | 21 |
| 8 | Fernando Gaviria (COL) | UAE Team Emirates | 21 |
| 9 | Simone Ravanelli (ITA) | Androni Giocattoli–Sidermec | 18 |
| 10 | Mark Christian (GBR) | Eolo–Kometa | 16 |

### Combativity classification

Final combativity classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Dries De Bondt (BEL) | Alpecin–Fenix | 53 |
| 2 | Egan Bernal (COL) | Ineos Grenadiers | 51 |
| 3 | Simon Pellaud (SUI) | Androni Giocattoli–Sidermec | 39 |
| 4 | Umberto Marengo (ITA) | Bardiani–CSF–Faizanè | 36 |
| 5 | Geoffrey Bouchard (FRA) | AG2R Citroën Team | 32 |
| 6 | Damiano Caruso (ITA) | Team Bahrain Victorious | 31 |
| 7 | João Almeida (POR) | Deceuninck–Quick-Step | 31 |
| 8 | Fernando Gaviria (COL) | UAE Team Emirates | 26 |
| 9 | Dan Martin (IRL) | Israel Start-Up Nation | 22 |
| 10 | Francesco Gavazzi (ITA) | Eolo–Kometa | 21 |

### Breakaway classification

Final breakaway classification (1–10) :
| Rank | Rider | Team | Kilometres |
| 1 | Simon Pellaud (SUI) | Androni Giocattoli–Sidermec | 783 |
| 2 | Umberto Marengo (ITA) | Bardiani–CSF–Faizanè | 648 |
| 3 | Samuele Rivi (ITA) | Eolo–Kometa | 414 |
| 4 | Vincenzo Albanese (ITA) | Eolo–Kometa | 368 |
| 5 | Taco van der Hoorn (NED) | Intermarché–Wanty–Gobert Matériaux | 355 |
| 6 | Mark Christian (GBR) | Eolo–Kometa | 281 |
| 7 | Alexis Gougeard (FRA) | AG2R Citroën Team | 274 |
| 8 | Filippo Tagliani (ITA) | Androni Giocattoli–Sidermec | 224 |
| 9 | Quinten Hermans (BEL) | Intermarché–Wanty–Gobert Matériaux | 196 |
| 10 | Samuele Zoccarato (ITA) | Bardiani–CSF–Faizanè | 169 |

### Fair play classification

Final fair play classification (1–10) :
| Rank | Team | Points |
| 1 | Team Bahrain Victorious | 0 |
| 2 | Team Jumbo–Visma | 0 |
| 3 | Israel Start-Up Nation | 0 |
| 4 | Ineos Grenadiers | 20 |
| 5 | Team Qhubeka Assos | 20 |
| 6 | Lotto–Soudal | 20 |
| 7 | EF Education–Nippo | 30 |
| 8 | Deceuninck–Quick-Step | 50 |
| 9 | Team DSM | 50 |
| 10 | Groupama–FDJ | 50 |