# 2021 Giro d'Italia, Stage 12 to Stage 21

The 2021 Giro d'Italia will be the 104th edition of the Giro d'Italia, one of cycling's Grand Tours. The Giro began in Torino with an individual time trial on 8 May, and Stage 12 occurred on 20 May with a stage from Siena. The race finished in Milano on 30 May.

## Classification standings

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

## Stage 12
### 20 May 2021 — Siena to Bagno di Romagna, 212 km (132 mi)

Following the previous day's fireworks to Montalcino, the riders tackled another hilly course from Siena to Bagno di Romagna. At 212 kilometres (132 mi), the distance tied the second longest stage of this year's race. There were a few hills during the first part of the stage before the riders passed through the first intermediate sprint after 76.5 kilometres (47.5 mi). Immediately afterwards, the riders climbed the third-category climb of Monte Morello. There were also two consecutive second-category climbs before the riders climbed the third-category Passo del Carnaio. The finish featured a descent of 6 kilometres (3.7 mi) before a 3.4 kilometres (2.1 mi) flat run-in to the finish line.
At the start of the stage, there was a crash at the back of the peloton. One of the riders involved was Marc Soler (Movistar Team), lying in 11th overall in GC. He tried to chase back but he eventually had to abandon the race due to back pain. A few kilometres later, there was a serious crash involving former race leader, Alessandro De Marchi (Israel Start-Up Nation), forcing his abandonment from the race. Following the stage, he was diagnosed with a broken right collarbone, six broken ribs, and broken first and second thoracic vertebra. At the front of the race, several riders tried to attack from the peloton but for the first 65 kilometres (40 mi), no attack would stick. Eventually, a 16-rider break broke clear of the peloton. Nicolas Edet (Cofidis) and Giovanni Visconti (Bardiani–CSF–Faizanè) soon bridged over to the break to make it 18 riders out front. Mountains classification leader, Geoffrey Bouchard (AG2R Citroën Team) was among the riders in the break, while the best-placed rider was George Bennett (Team Jumbo–Visma), at around 21 minutes down. As such, the break was allowed to stay away, with the peloton allowing them to get a maximum advantage of around 13 minutes.
As the break reached the first intermediate sprint, Belgian national champion Dries De Bondt (Alpecin–Fenix) took maximum points while Bouchard took maximum points at each of the stage's first three climbs. As a result, Bouchard increased his total in the mountains classification to 96 points, double the total of the second-placed Egan Bernal (Ineos Grenadiers). The break continued to work together until the final climb of the day, the Passo del Carnaio. Gianluca Brambilla (Trek–Segafredo) kicked off the attacks at the front but it was Andrea Vendrame (AG2R Citroën Team) who was able to get a gap on the steepest section of the climb. Eventually, Bennett, Brambilla, and Chris Hamilton (Team DSM) joined Vendrame at the front. The four riders were together over the top of the climb until the descent. With 3 kilometres (1.9 mi) to go, Hamilton attacked his companions, with Vendrame joining him at the front. Bennett and Brambilla were distanced by the attack as they argued and refused to work together. During the sprint for the line, Vendrame proved to be the faster sprinter as he took the stage win.
In the maglia rosa group, Ineos-Grenadiers continued to control the peloton. They rode at a steady pace until the Trek-Segafredo duo of Giulio Ciccone and Vincenzo Nibali attacked on the final climb. Although they would be caught, Nibali continued his attack on the descent. While trying to chase him, Gianni Moscon (Ineos-Grenadiers) slid on a corner but he would get back on the bike and finish the stage. Nibali eventually took 7 seconds on the finish, while most of the contenders finished more than 10 minutes behind Vendrame.
Stage 12 Result :
| Rank | Rider | Team | Time |
| 1 | Andrea Vendrame (ITA) | AG2R Citroën Team | 5h 43' 48" |
| 2 | Chris Hamilton (AUS) | Team DSM | + 0" |
| 3 | George Bennett (NZL) | Team Jumbo–Visma | + 15" |
| 4 | Gianluca Brambilla (ITA) | Trek–Segafredo | + 15" |
| 5 | Giovanni Visconti (ITA) | Bardiani–CSF–Faizanè | + 1' 12" |
| 6 | Geoffrey Bouchard (FRA) | AG2R Citroën Team | + 1' 25" |
| 7 | Nicolas Edet (FRA) | Cofidis | + 1' 47" |
| 8 | Simone Petilli (ITA) | Intermarché–Wanty–Gobert Matériaux | + 1' 47" |
| 9 | Mikkel Frølich Honoré (DEN) | Deceuninck–Quick-Step | + 3' 00" |
| 10 | Simone Ravanelli (ITA) | Androni Giocattoli–Sidermec | + 4' 19" |
General classification after Stage 12 :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 48h 29' 23" |
| 2 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 45" |
| 3 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 1' 12" |
| 4 | Hugh Carthy (GBR) | EF Education–Nippo | + 1' 17" |
| 5 | Simon Yates (GBR) | Team BikeExchange | + 1' 22" |
| 6 | Emanuel Buchmann (GER) | Bora–Hansgrohe | + 1' 50" |
| 7 | Remco Evenepoel (BEL) | Deceuninck–Quick-Step | + 2' 22" |
| 8 | Giulio Ciccone (ITA) | Trek–Segafredo | + 2' 24" |
| 9 | Tobias Foss (NOR) | Team Jumbo–Visma | + 2' 49" |
| 10 | Daniel Martínez (COL) | Ineos Grenadiers | + 3' 15" |

## Stage 13
### 21 May 2021 — Ravenna to Verona, 198 km (123 mi)

The thirteenth stage featured a pan-flat course from Ravenna to Verona. There was an intermediate sprint after 67.5 kilometres (41.9 mi), while the sprint for bonus seconds occurred after 144.6 kilometres (89.9 mi). There were no hills or climbs on the route, with the stage representing one of the final chances for the pure sprinters in this year's race.
As soon as the flag dropped, two riders, Samuele Rivi (Eolo–Kometa) and Umberto Marengo (Bardiani–CSF–Faizanè), immediately attacked from the peloton. Shortly afterwards, Simon Pellaud (Androni Giocattoli–Sidermec) joined the duo at the front, representing the final breakaway of the day. The trio was allowed to gain a maximum advantage of around seven and a half minutes before the sprinters' teams kept the break in check. Soon after the first intermediate sprint, tensions arose with the three out front and soon afterwards, the three riders attacked each other. This caused their advantage over the peloton to quickly decrease. While the peloton remained relatively quiet for the majority of the stage, Rémi Cavagna (Deceuninck–Quick-Step) sensed the possibility of crosswinds with around 50 kilometres (31 mi) to go. He was quickly chased down and the peloton eased up once again. The peloton continued to eat into the breakaway's advantage but avoided catching the trio immediately. Eventually, with around 7 kilometres (4.3 mi) to go, the catch was made and the sprinters' teams started to bring their sprinters to the front. Going into the final kilometre, Bora–Hansgrohe led the peloton to set up their sprinter, Peter Sagan. However, with around 500 metres to go, Edoardo Affini (Team Jumbo–Visma) made a late attack and immediately gaining a few seconds of an advantage. Fernando Gaviria (UAE Team Emirates) started his sprint first, despite having lost his saddle on the approach to the line. Giacomo Nizzolo (Team Qhubeka Assos) went to his slipstream, passing Gaviria and Affini to take the stage win. This marked Nizzolo's first Grand Tour stage win, having previously finished second on a stage for a total of 11 times. Affini held on for second while Sagan finished third to keep his lead in the points classification. All of the contenders finished safely in the peloton, ahead of the crucial mountain stage to Monte Zoncolan.
Stage 13 Result :
| Rank | Rider | Team | Time |
| 1 | Giacomo Nizzolo (ITA) | Team Qhubeka Assos | 4h 42' 19" |
| 2 | Edoardo Affini (ITA) | Team Jumbo–Visma | + 0" |
| 3 | Peter Sagan (SVK) | Bora–Hansgrohe | + 0" |
| 4 | Davide Cimolai (ITA) | Israel Start-Up Nation | + 0" |
| 5 | Fernando Gaviria (COL) | UAE Team Emirates | + 0" |
| 6 | Stefano Oldani (ITA) | Lotto–Soudal | + 0" |
| 7 | Andrea Pasqualon (ITA) | Intermarché–Wanty–Gobert Matériaux | + 0" |
| 8 | Max Kanter (GER) | Team DSM | + 0" |
| 9 | Elia Viviani (ITA) | Cofidis | + 0" |
| 10 | Dylan Groenewegen (NED) | Team Jumbo–Visma | + 0" |
General classification after Stage 13 :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 53h 11' 42" |
| 2 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 45" |
| 3 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 1' 12" |
| 4 | Hugh Carthy (GBR) | EF Education–Nippo | + 1' 17" |
| 5 | Simon Yates (GBR) | Team BikeExchange | + 1' 22" |
| 6 | Emanuel Buchmann (GER) | Bora–Hansgrohe | + 1' 50" |
| 7 | Remco Evenepoel (BEL) | Deceuninck–Quick-Step | + 2' 22" |
| 8 | Giulio Ciccone (ITA) | Trek–Segafredo | + 2' 24" |
| 9 | Tobias Foss (NOR) | Team Jumbo–Visma | + 2' 49" |
| 10 | Daniel Martínez (COL) | Ineos Grenadiers | + 3' 15" |

## Stage 14
### 22 May 2021 — Cittadella to Monte Zoncolan, 205 km (127 mi)

The race went into the high mountains on the fourteenth stage, with the rider tackling the climb of Monte Zoncolan. The first 131.4 kilometres (81.6 mi) of the stage are mostly flat, with the exception of the fourth-category climb of Castello di Caneva after 73.7 kilometres (45.8 mi). Afterwards, the riders climbed the second-category Forcella Monte Rest. The climb is 10.5 kilometres (6.5 mi) long with an average of 5.9 per cent. Following the descent, the riders went through a valley before making their way towards the base of the climb of Monte Zoncolan. This marked the seventh time that the Giro tackled the climb. Unlike the previous five passages, the riders took on the climb from the Sutrio side for the first time since the climb made its Giro debut in 2003. From Sutrio, the climb is 14.1 kilometres (8.8 mi) long with an average gradient of 8.5 per cent. The first 9 kilometres (5.6 mi) averaged 8.3 per cent before easing for the next kilometre or so. The last 3 kilometres (1.9 mi) of the climb averaged 13 per cent, including pitches of 27 per cent towards the top. In addition, the riders had to deal with fog and small visibility towards the summit of the climb.
For the first part of the stage, several riders tried to attack from the peloton until an 11-man group broke clear. The break was allowed to gain a maximum advantage of around eight and a half minutes before the peloton started chasing. However, Edoardo Affini (Team Jumbo–Visma) and Jacopo Mosca (Trek–Segafredo) mainly shared the workload in support of fellow breakaway companions, George Bennett and Bauke Mollema, respectively. As a result, the break maintained their advantage and reached the base of the final climb with a lead of six minutes over the peloton. At the bottom of the climb, Jan Tratnik (Team Bahrain Victorious) got a gap over his breakaway companions. No one immediately reacted to his move until Lorenzo Fortunato (Eolo–Kometa) attacked the rest of the chasers. Fortunato eventually bridged over to Tratnik and the pair worked together to increase their advantage. From the chasing group, Alessandro Covi (UAE Team Emirates) attacked in an attempt to bridge over to the duo out front but he would not get closer than 40 seconds. With 2.5 kilometres (1.6 mi) to go, Fortunato dropped Tratnik on the steep portion of the climb. Although he was within Tratnik's sight for the rest of the stage, Fortunato maintained his gap to take his first professional victory. Tratnik finished 26 seconds behind while Covi finished almost a minute down.
From the maglia rosa group, Astana–Premier Tech paced the group for the majority of the stage in support of their leader, Aleksandr Vlasov. On the descent of Forcella Monte Rest, the peloton split into three groups, with Vlasov and Egan Bernal (Ineos Grenadiers) making it in the first group. EF Education–Nippo and Team DSM chased in the second group while Remco Evenepoel and Deceuninck–Quick-Step chased from the third group. Eventually, the catch was made in the valley before the final climb. Astana continued to pace the peloton on the bottom of the Zoncolan before Ineos-Grenadiers took over with around 10 kilometres (6.2 mi) to go. The first contender to lose touch with the group was Vincenzo Nibali (Trek-Segafredo), who was dropped with around 6 kilometres (3.7 mi) to go. Evenepoel also struggled to follow the pace and was dropped with around 2 kilometres (1.2 mi) to go. Ineos continued to whittle down the group until Simon Yates delivered his first attack with 1.5 kilometres (0.93 mi) to go. The only rider to go with him was the race leader, Bernal, while the group continued to splinter behind. The pair caught the remnants of the breakaway until Bernal attacked Yates inside the final kilometre. Bernal finished fourth on the stage, with Yates losing 11 seconds. A trio consisting of Daniel Martinez (Ineos-Grenadiers), Damiano Caruso (Team Bahrain Victorious), and Giulio Ciccone (Trek-Segafredo) finished 39 seconds behind Bernal. Emanuel Buchmann (Bora–Hansgrohe) and Hugh Carthy (EF Education–Nippo) lost 46 and 54 seconds, respectively. Despite the work of his team, Vlasov struggled inside the final 3 kilometres and lost more than a minute while Evenepoel shipped more than a minute and a half.
In terms of the GC, Bernal increased his advantage to more than a minute and a half over the second place, now occupied by Yates. Caruso maintained his third place, but he was now 1' 51" behind while Vlasov dropped to fourth at 1' 57" behind. Carthy and Buchmann were now over two minutes down with Ciccone more than three minutes down. Evenepoel dropped to eighth at almost four minutes behind Bernal.
Stage 14 Result :
| Rank | Rider | Team | Time |
| 1 | Lorenzo Fortunato (ITA) | Eolo–Kometa | 5h 17' 22" |
| 2 | Jan Tratnik (SLO) | Team Bahrain Victorious | + 26" |
| 3 | Alessandro Covi (ITA) | UAE Team Emirates | + 59" |
| 4 | Egan Bernal (COL) | Ineos Grenadiers | + 1' 43" |
| 5 | Bauke Mollema (NED) | Trek–Segafredo | + 1' 47" |
| 6 | Simon Yates (GBR) | Team BikeExchange | + 1' 54" |
| 7 | George Bennett (NZL) | Team Jumbo–Visma | + 2' 10" |
| 8 | Nelson Oliveira (POR) | Movistar Team | + 2' 18" |
| 9 | Daniel Martínez (COL) | Ineos Grenadiers | + 2' 22" |
| 10 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 2' 22" |
General classification after Stage 14 :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 58h 30' 47" |
| 2 | Simon Yates (GBR) | Team BikeExchange | + 1' 33" |
| 3 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 1' 51" |
| 4 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 1' 57" |
| 5 | Hugh Carthy (GBR) | EF Education–Nippo | + 2' 11" |
| 6 | Emanuel Buchmann (GER) | Bora–Hansgrohe | + 2' 36" |
| 7 | Giulio Ciccone (ITA) | Trek–Segafredo | + 3' 03" |
| 8 | Remco Evenepoel (BEL) | Deceuninck–Quick-Step | + 3' 52" |
| 9 | Daniel Martínez (COL) | Ineos Grenadiers | + 3' 54" |
| 10 | Romain Bardet (FRA) | Team DSM | + 4' 31" |

## Stage 15
### 23 May 2021 — Grado to Gorizia, 147 km (91 mi)

The fifteenth stage took the riders on a hilly course from Grado to Gorizia. The first 65 kilometres (40 mi) were mostly flat with an uncategorized climb after 33 kilometres (21 mi) and an intermediate sprint after 53.7 kilometres (33.4 mi). Afterwards, the riders entered Slovenia before tackling three laps of a circuit, with the circuit consisting of the fourth-category climb of Gornje Cerovo. Following the third passage of the climb, the riders deviated from the circuit before reaching the second intermediate sprint at Nova Gorica with 4.6 kilometres (2.9 mi) to go. Immediately afterwards, there was a short steep ramp before reaching the finish at Gorizia.
As soon as the flag dropped, several riders went on the attack. However, there was a big crash in the peloton involving a bunch of riders. The crash led the commissaires to neutralize and stop the race so that the affected riders could receive assistance. The riders who were severely involved included Natnael Berhane (Cofidis), Jos van Emden (Team Jumbo–Visma), and Emanuel Buchmann (Bora–Hansgrohe), who was lying in sixth overall in the GC. All riders would eventually abandon the race, while another rider, Ruben Guerreiro (EF Education–Nippo), also abandoned later in the stage. As soon as the riders restarted, a group of 15 riders broke clear. The peloton immediately eased up and let the break go. A chasing group of four also tried to join the break but they were eventually caught by the peloton. At the first intermediate sprint, Dries De Bondt (Alpecin–Fenix) attacked to take maximum points while also taking maximum points at the first two ascents of Gornje Cerovo. With 31 kilometres (19 mi) to go, Oscar Riesebeek (Alpecin-Fenix) attacked, with Victor Campenaerts (Team Qhubeka Assos) immediately marking him. The duo would eventually be caught by the rest of the break. The break continued to attack each other until Campenaerts attacked with 23 kilometres (14 mi) to go. Riesebeek and Albert Torres (Movistar Team) joined his move as torrential rain started to fall on the stage. Despite some discussions with regards to workload, the trio reached the bottom of the final climb with a lead of 30 seconds over the rest of the break. Towards the top of the climb, Torres struggled to follow the pace and he would eventually drop back to the group of chasers. On the run-in to the finish, the duo attacked each other several times, resulting in their lead decreasing to less than 20 seconds. However, the duo would maintain their advantage heading into the final kilometre. The two riders played cat and mouse until Riesebeek first started his sprint. However, Campenaerts was able to outsprint him to take his first Grand Tour stage win. The peloton remained relatively calm for the whole stage and they eventually finished more than 17 minutes behind Campenaerts. As a result, the GC remained unchanged ahead of the race's queen stage to Cortina d'Ampezzo.
Stage 15 Result :
| Rank | Rider | Team | Time |
| 1 | Victor Campenaerts (BEL) | Team Qhubeka Assos | 3h 25' 25" |
| 2 | Oscar Riesebeek (NED) | Alpecin–Fenix | + 0" |
| 3 | Nikias Arndt (GER) | Team DSM | + 7" |
| 4 | Simone Consonni (ITA) | Cofidis | + 7" |
| 5 | Quinten Hermans (BEL) | Intermarché–Wanty–Gobert Matériaux | + 7" |
| 6 | Dario Cataldo (ITA) | Movistar Team | + 7" |
| 7 | Bauke Mollema (NED) | Trek–Segafredo | + 9" |
| 8 | Albert Torres (ESP) | Movistar Team | + 44" |
| 9 | Juan Sebastián Molano (COL) | UAE Team Emirates | + 1' 02" |
| 10 | Max Walscheid (GER) | Team Qhubeka Assos | + 1' 02" |
General classification after Stage 15 :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 62h 13' 33" |
| 2 | Simon Yates (GBR) | Team BikeExchange | + 1' 33" |
| 3 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 1' 51" |
| 4 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 1' 57" |
| 5 | Hugh Carthy (GBR) | EF Education–Nippo | + 2' 11" |
| 6 | Giulio Ciccone (ITA) | Trek–Segafredo | + 3' 03" |
| 7 | Remco Evenepoel (BEL) | Deceuninck–Quick-Step | + 3' 52" |
| 8 | Daniel Martínez (COL) | Ineos Grenadiers | + 3' 54" |
| 9 | Romain Bardet (FRA) | Team DSM | + 4' 31" |
| 10 | Tobias Foss (NOR) | Team Jumbo–Visma | + 5' 36" |

## Stage 16
### 24 May 2021 — Sacile to Cortina d'Ampezzo, 212 km (132 mi) 153 km (95 mi)

The sixteenth stage from Sacile to Cortina d'Ampezzo was considered as the queen stage of this year's race, with four first-category climbs on the stage's original route. From the get-go, the riders tackled the climb of La Crosetta, an 11.6 kilometres (7.2 mi) climb with an average gradient of 7.1 per cent. Following the descent and a valley, next on the route was the Passo Fedaia. The climb is 14 kilometres (8.7 mi) long with an average gradient of 7.5 per cent. Immediately following the descent is the climb of Passo Pordoi, an 11.8 kilometres (7.3 mi) climb with an average gradient of 6.6 per cent. At a height of 2,231 metres, the climb was the Cima Coppi as the highest point reached in this year's race. The last climb of the day was the climb of Passo Giau. The climb was 9.8 kilometres (6.1 mi) long with an average gradient of 9.3 per cent. The finish of the stage ended at Cortina d'Ampezzo following a descent of 17.5 kilometres (10.9 mi).
However, on the day the stage was run, there was heavy rain on the route as well as snow on the last three climbs of the day. Before the stage was supposed to start, there were discussions as to whether the route was going to be modified or whether the original route was still going to be ridden. At one point, there was also a discussion to neutralize the first part of the stage and to take the GC times at the top of the Giau. Despite the riders wanting to race the original route, the original route was eventually changed and shortened due to the weather, bypassing the climbs of the Fedaia and the Pordoi and leaving only the Crosetta and the Giau in the race. The cancellation of the Pordoi meant that the Cima Coppi was now awarded to the first rider over the summit of the Giau. The weather also caused the live TV coverage to encounter problems throughout the day. The coverage was stopped near the top of the Giau and on the descent to the finish, while still showing the final few hundred metres of the stage.
Following the start of the stage, a 24-man breakaway formed. Some of the notable names in the break included mountains classification leader, Geoffrey Bouchard (AG2R Citroën Team), and some contenders who already lost time such as Dan Martin (Israel Start-Up Nation), João Almeida (Deceuninck–Quick-Step), Davide Formolo (UAE Team Emirates), and Vincenzo Nibali (Trek–Segafredo). After Bouchard took maximum points at the top of La Crosetta, the break split on the descent. Six riders broke away from the original break, including Nibali, Almeida, and Formolo, and they continued to increase their advantage over the rest of the break. The sextet also had a maximum advantage of around five minutes over the Ineos Grenadiers-led peloton. Soon after, the peloton caught the rest of the original break with 55 kilometres (34 mi) to go. With around 50 kilometres (31 mi) to go, EF Education–Nippo started to pace the peloton and they started to decrease the break's advantage. As the road gradually went uphill towards the base of Giau, the break's advantage was down to less than two minutes. At this point, Remco Evenepoel (Deceuninck–Quick-Step) lost contact with the maglia rosa group. He eventually lost more than 24 minutes at the end of the day. As the break neared the base of Giau, Antonio Pedrero (Movistar Team) accelerated to take a slim gap over the rest of the break. It was also at this point that Aleksandr Vlasov (Astana–Premier Tech) suffered an untimely mechanical, putting him at a disadvantage as the maglia rosa group approached the Passo Giau.
On the final climb, Pedrero was soon caught by Nibali and Formolo. Almeida was dangling a bit further back before Formolo accelerated at the front. From behind, Simon Carr (EF Education–Nippo) started to increase the pace as riders began to drop from the group. This made it hard for Vlasov to get back to the group following his mechanical. The first favorite to lose contact was Simon Yates (Team BikeExchange) while up front, Pedrero caught Formolo before accelerating once again. Almeida soon overtook Nibali and Formolo as he chased Pedrero. With their deficit to the break at just around a minute, Egan Bernal (Ineos-Grenadiers) accelerated from the group of favorites. Hugh Carthy (EF Education–Nippo) tried to follow his move but he would soon drop back. Bernal soon caught the rest of the break before going solo off the front. His closest pursuers were Damiano Caruso (Team Bahrain Victorious) and Romain Bardet (Team DSM) but Bernal continued to increase his advantage all the way to the top of the climb. Bernal took the Cima Coppi with Caruso crossing the summit 45 seconds later. Bardet was 1' 15" behind while a trio composed of Carthy, Almeida, and Giulio Ciccone (Trek–Segafredo) was a minute and a half behind. Vlasov soon crossed the summit after dropping Yates, who continued to struggle and continued to lose time.
On the descent from the Giau, Bernal rode somewhat conservatively while Bardet caught Caruso. The pair was able to decrease their deficit to around half a minute. However, Bernal continued to maintain his advantage. He took his second stage win of the race while Bardet and Caruso crossed the line at a deficit of 27 seconds to Bernal. The trio of Ciccone, Carthy, and Almeida soon crossed the line almost a minute and a half behind. Vlasov lost more than two minutes on the day while Yates lost more than two and a half minutes. In the GC, Bernal increased his advantage to almost two and a half minutes over Caruso, who now occupies second place. Carthy rose to third overall but he was now more than three and a half minutes behind Bernal. Vlasov, Yates, and Ciccone occupied the next three spots in the GC but they were now around four and a half minutes behind. As a result of his gains on the stage. Bardet rose to seventh overall at five minutes behind. Almeida also climbed back into contention as he climbed inside the top ten, more than ten minutes behind Bernal.
Stage 16 Result :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 4h 22' 41" |
| 2 | Romain Bardet (FRA) | Team DSM | + 27" |
| 3 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 27" |
| 4 | Giulio Ciccone (ITA) | Trek–Segafredo | + 1' 18" |
| 5 | Hugh Carthy (GBR) | EF Education–Nippo | + 1' 19" |
| 6 | João Almeida (POR) | Deceuninck–Quick-Step | + 1' 21" |
| 7 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 2' 11" |
| 8 | Gorka Izagirre (ESP) | Astana–Premier Tech | + 2' 31" |
| 9 | Davide Formolo (ITA) | UAE Team Emirates | + 2' 33" |
| 10 | Tobias Foss (NOR) | Team Jumbo–Visma | + 2' 33" |
General classification after Stage 16 :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 66h 36' 04" |
| 2 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 2' 24" |
| 3 | Hugh Carthy (GBR) | EF Education–Nippo | + 3' 40" |
| 4 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 4' 18" |
| 5 | Simon Yates (GBR) | Team BikeExchange | + 4' 20" |
| 6 | Giulio Ciccone (ITA) | Trek–Segafredo | + 4' 31" |
| 7 | Romain Bardet (FRA) | Team DSM | + 5' 02" |
| 8 | Daniel Martínez (COL) | Ineos Grenadiers | + 7' 17" |
| 9 | Tobias Foss (NOR) | Team Jumbo–Visma | + 8' 20" |
| 10 | João Almeida (POR) | Deceuninck–Quick-Step | + 10' 01" |

## Stage 17
### 26 May 2021 — Canazei to Sega di Ala, 193 km (120 mi)

Following the second rest day, the riders faced another summit finish with the climb of Sega di Ala at the end of the stage. The first 41 kilometres (25 mi) of the stage were on a slight downhill before the riders tackled a third-category climb after 54.7 kilometres (34.0 mi). Afterwards, the riders faced a long descent before passing through the first intermediate sprint after 91.3 kilometres (56.7 mi). 30 kilometres later, the riders passed through the second intermediate sprint. With 53.8 kilometres (33.4 mi) to go, the riders tackled the first-category climb of Passo San Valentino. The climb is 14.8 kilometres (9.2 mi) long with an average gradient of 7.8 per cent. Following the descent and a short flat portion, the riders faced the final climb of Sega di Ala, which is being used for the first time in the Giro. The climb goes on for 11.5 kilometres (7.1 mi) with an average gradient of 9.5 per cent. The climb is steep for the most part before easing up in the last 1.5 kilometres (0.93 mi), with the climb averaging 4.8 per cent at that point.
At the start of the stage, several rider attempted to attack from the peloton but none would stick for a while. Ineos Grenadiers prevented any break from sticking for the first 54 kilometres (34 mi) before letting go of a group on the third-category climb. 19 riders went off the front, including Dan Martin Israel Start-Up Nation who was the best-placed GC rider at over 15 minutes down. Geoffrey Bouchard (AG2R Citroën Team) also made it into the break in an attempt to extend his lead in the mountains classification. The break was allowed to gain a maximum advantage of around 5 minutes before Team BikeExchange took over on the front of the peloton. The break soon reached the bottom of the first-category Passo San Valentino with a lead of around 3 minutes. Towards the middle of the climb, Martin accelerated from the rest of the break and only Bouchard, Gianni Moscon (Ineos Grenadiers), and Antonio Pedrero (Movistar Team) could stay with him. Bouchard took maximum points at the top of the climb to extend his lead, while the peloton crossed the summit with a deficit of just under 3 minutes. On the descent, Giulio Ciccone (Trek–Segafredo) suffered a mechanical but he was able to get back to the maglia rosa group. However, with 25 kilometres (16 mi) to go, a crash took down several riders in the peloton, including Remco Evenepoel (Deceuninck–Quick-Step) as well as two domestiques for Simon Yates (Team BikeExchange), Nick Schultz and Mikel Nieve. While Evenepoel and Schultz would continue and finish, they would eventually abandon after the stage. Ciccone was also caught up in the crash after having just made it back from his mechanical. At the front of the race, Giovanni Carboni (Bardiani–CSF–Faizanè) and Simone Ravanelli (Androni Giocattoli–Sidermec) rejoined the break just before the final climb of Sega di Ala.
At the bottom of the final climb, Martin accelerated to drop the rest of the break, while the peloton was only around a minute and a half behind. Shortly after, Ineos Grenadiers took over the front of the maglia rosa group, with Jonathan Castroviejo setting a steady pace. With around 10 kilometres (6.2 mi) to go, Aleksandr Vlasov began to lose contact to the group of favorites while Ciccone began to pay for his earlier efforts to come back and he was soon dropped. With around 5 kilometres (3.1 mi) to go, Romain Bardet (Team DSM), Hugh Carthy (EF Education–Nippo), and Tobias Foss (Team Jumbo–Visma) were also dropped. While Foss was able to briefly get back, Bardet and Carthy were definitively distanced and would lose a big chunk of time on the day. With 4 kilometres (2.5 mi) to go, João Almeida (Deceuninck–Quick-Step) attacked, with no rider immediately reacting to his move. Shortly afterwards, Yates attacked and only the Ineos Grenadiers duo of race leader, Egan Bernal, and Daniel Martínez could follow him. The trio would immediately get back to Almeida, while Martin still led the stage with a lead of around a minute. With 3 kilometres (1.9 mi) to go, Bernal suffered his first crisis when he was dropped by Yates and Almeida. At one point, he was unable to follow the pace of Martínez while Damiano Caruso and Pello Bilbao (Team Bahrain Victorious), as well as Diego Ulissi (UAE Team Emirates), was able to get back to the group of Bernal. With around a kilometre to go, Almeida attacked and dropped Yates in pursuit of the stage win. However, Martin was able to hold on to take his first Giro stage win. With the victory, Martin completed the hat-trick by taking stage victories at all three Grand Tours. Almeida crossed the line 13 seconds after Martin while Yates finished 30 seconds behind. Caruso and Ulissi crossed the line at 1' 20" behind, with Bernal and Martinez crossing a further 3 seconds in arrears. Foss finished 2' 21" behind while Bardet finished almost three minutes back. Vlasov was able to limit his losses, finishing more than three minutes behind while Carthy lost almost four minutes. Ciccone suffered the biggest loss on the day as he finished almost eight minutes back.
In the GC, Bernal lost three seconds to second-placed Caruso but he still maintained a lead of almost two and a half minutes. Yates gained 57 seconds on Bernal while also moving up to third at almost three and a half minutes down. Vlasov, Carthy, and Bardet were now over six minutes down as a result of their time losses, while Martínez is now seventh at more than seven minutes down. Almeida jumped up to eighth at around eight and a half minutes behind, with Foss at more than nine minutes behind. As a result of his time loss, Ciccone dropped to tenth at more than 11 minutes down.
Stage 17 Result :
| Rank | Rider | Team | Time |
| 1 | Dan Martin (IRL) | Israel Start-Up Nation | 4h 54' 38" |
| 2 | João Almeida (POR) | Deceuninck–Quick-Step | + 13" |
| 3 | Simon Yates (GBR) | Team BikeExchange | + 30" |
| 4 | Diego Ulissi (ITA) | UAE Team Emirates | + 1' 20" |
| 5 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 1' 20" |
| 6 | Daniel Martínez (COL) | Ineos Grenadiers | + 1' 23" |
| 7 | Egan Bernal (COL) | Ineos Grenadiers | + 1' 23" |
| 8 | Antonio Pedrero (ESP) | Movistar Team | + 1' 38" |
| 9 | Pello Bilbao (ESP) | Team Bahrain Victorious | + 1' 43" |
| 10 | George Bennett (NZL) | Team Jumbo–Visma | + 2' 21" |
General classification after Stage 17 :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 71h 32' 05" |
| 2 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 2' 21" |
| 3 | Simon Yates (GBR) | Team BikeExchange | + 3' 23" |
| 4 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 6' 03" |
| 5 | Hugh Carthy (GBR) | EF Education–Nippo | + 6' 09" |
| 6 | Romain Bardet (FRA) | Team DSM | + 6' 31" |
| 7 | Daniel Martínez (COL) | Ineos Grenadiers | + 7' 17" |
| 8 | João Almeida (POR) | Deceuninck–Quick-Step | + 8' 45" |
| 9 | Tobias Foss (NOR) | Team Jumbo–Visma | + 9' 18" |
| 10 | Giulio Ciccone (ITA) | Trek–Segafredo | + 11' 06" |

## Stage 18
### 27 May 2021 — Rovereto to Stradella, 231 km (144 mi)

The eighteenth stage was the longest of this year's Giro, with a distance of 231 kilometres (144 mi). The first 196.1 kilometres (121.9 mi) of the stage was mostly flat before the riders tackled a series of four short climbs in the final part, with a single fourth-category climb with 27.7 kilometres (17.2 mi) to go. There were two intermediate sprints after 134.2 kilometres (83.4 mi) and after 222 kilometres (138 mi). With two mountain stages and a time trial stage left after this stage, this marked the final chance for Peter Sagan's (Bora–Hansgrohe) rivals to overtake him in the points classification.
Before the stage began, Giulio Ciccone (Trek–Segafredo), lying in tenth overall in the GC, abandoned the race due to the injuries he sustained in the previous day's crash. After the flag dropped, it would take a while before a 23-man break was let go by the peloton. Ineos Grenadiers would take station at the front of the peloton to set a steady pace and they would eventually roll over the line 23 and a half minutes down. The break would stay together for the majority of the stage until a six-rider group detached themselves from the break on the first climb of the day. Following a regrouping, Rémi Cavagna (Deceuninck–Quick-Step) attacked on the lone categorized climb of the day. Alberto Bettiol (EF Education–Nippo) and Nicolas Roche (Team DSM) emerged as his closest pursuers while the break began to splinter behind. Cavagna would build a lead of around half a minute before he crossed the top of the climb while Bettiol and Roche would be caught by a chase group. Cavagna started the penultimate climb with a lead of 30 seconds before Bettiol took off alone from the chase group to track down Cavagna. At the top of the penultimate climb, Bettiol managed to decrease Cavagna's advantage to only 12 seconds while Roche would latch back on to Bettiol on the descent. Cavagna extended his advantage a bit just before the final climb but Bettiol, after dropping Roche, was able to catch him with 7 kilometres (4.3 mi) to go. With 6.5 kilometres (4.0 mi) to go, Cavagna cracked as Bettiol went off in pursuit of the stage win. Bettiol would eventually hold on to the stage win, 17 seconds ahead of the chasing group. With the win, Bettiol took his first Grand Tour stage victory. Apart from Ciccone's withdrawal, the GC remained unchanged ahead of the final three crucial stages of this year's Giro.
Stage 18 Result :
| Rank | Rider | Team | Time |
| 1 | Alberto Bettiol (ITA) | EF Education–Nippo | 5h 14' 43" |
| 2 | Simone Consonni (ITA) | Cofidis | + 17" |
| 3 | Nicolas Roche (IRL) | Team DSM | + 17" |
| 4 | Nikias Arndt (GER) | Team DSM | + 17" |
| 5 | Diego Ulissi (ITA) | UAE Team Emirates | + 17" |
| 6 | Samuele Battistella (ITA) | Astana–Premier Tech | + 17" |
| 7 | Filippo Zana (ITA) | Bardiani–CSF–Faizanè | + 17" |
| 8 | Natnael Tesfatsion (ERI) | Androni Giocattoli–Sidermec | + 17" |
| 9 | Rémi Cavagna (FRA) | Deceuninck–Quick-Step | + 24" |
| 10 | Jacopo Mosca (ITA) | Trek–Segafredo | + 1' 12" |
General classification after Stage 18 :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 77h 10' 18" |
| 2 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 2' 21" |
| 3 | Simon Yates (GBR) | Team BikeExchange | + 3' 23" |
| 4 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 6' 03" |
| 5 | Hugh Carthy (GBR) | EF Education–Nippo | + 6' 09" |
| 6 | Romain Bardet (FRA) | Team DSM | + 6' 31" |
| 7 | Daniel Martínez (COL) | Ineos Grenadiers | + 7' 17" |
| 8 | João Almeida (POR) | Deceuninck–Quick-Step | + 8' 45" |
| 9 | Tobias Foss (NOR) | Team Jumbo–Visma | + 9' 18" |
| 10 | Dan Martin (IRL) | Israel Start-Up Nation | + 13' 37" |

## Stage 19
### 28 May 2021 — Abbiategrasso to Alpe di Mera (Valsesia), 176 km (109 mi) 166 km (103 mi)

The nineteenth stage kicked off a trio of stages that will be crucial to determining the final placings in the GC. The riders tackled three categorized climbs on the day. Originally, the first climb is the first-category climb of Mottarone but following the cable car crash on 23 May, the Mottarone climb was replaced by the fourth-category climb of Alpe Agogna. After a short descent, the riders passed through the first intermediate sprint with 68.5 kilometres (42.6 mi) to go. Afterwards, the riders gradually climbed towards the bottom of the third-category Passo della Colma. The climb is 7.5 kilometres (4.7 mi) long with an average gradient of 6.4 per cent. Following the descent, the riders again gradually climbed towards the second intermediate sprint and the bottom of the final climb of the day, the Alpe di Mera. The climb is 9.7 kilometres (6.0 mi) long with an average gradient of 9 per cent. The climb gradually goes steeper towards the end, with the final 4.7 kilometres (2.9 mi) averaging 10.4 per cent along with pitches of up to 14 per cent.
46 kilometres (29 mi) after the flag dropped, six riders went off the front of the peloton. The sextet gained a maximum advantage of around three minutes before Team BikeExchange took station at the front of the peloton. After the first climb of Alpe Agogna, Deceuninck–Quick-Step started to contribute to the pace as they searched for their first stage win in the race. With 65 kilometres (40 mi) to go, Deceuninck–Quick-Step set such a furious pace that the peloton split up. Daniel Martínez (Ineos Grenadiers), lying in 7th overall in the GC, was among the riders that were caught up in the second peloton. With the help of Filippo Ganna, who dropped back from the maglia rosa group, Martínez was eventually able to get back to the peloton. Soon afterwards, a crash in the peloton caused Gianluca Brambilla (Trek–Segafredo) to abandon the race. The peloton gradually decreased the break's advantage, with Deceuninck–Quick-Step leading the peloton onto the final climb of Alpe di Mera. At this point, only Mark Christian (Eolo–Kometa) remained at the front of the race. From behind, race leader Egan Bernal (Ineos Grenadiers) still had two domestiques in Martínez and Jonathan Castroviejo.
With 7 kilometres (4.3 mi) to go, João Almeida (Deceuninck–Quick-Step) attacked in pursuit of the stage win. Castroviejo quickly took station at the front of the maglia rosa group before Simon Yates (Team BikeExchange) attacked shortly thereafter. Three other riders, Damiano Caruso (Team Bahrain Victorious), Aleksandr Vlasov (Astana–Premier Tech), and George Bennett (Team Jumbo–Visma) also joined Yates and Almeida on the attack to make it a five-man group at the front of the race. Bernal remained in his group, preferring to utilize his teammates to prevent the gap from increasing. The group up front led by as much as 20 seconds before Yates accelerated off the front with 5.5 kilometres (3.4 mi) to go. Bennett was eventually dropped from the chasing group while Hugh Carthy (EF Education–Nippo) attacked from the maglia rosa group, eventually making it to the chase group. Sensing the maglia rosa group slowly catching the chase group, Vlasov counterattacked but he would eventually be swallowed as well. Martínez continued to drop riders from the maglia rosa group while the gap to Yates was still at around 20 seconds. With 2.5 kilometres (1.6 mi) to go, Martínez finished pacing at the front and Bernal was able to get a small gap. The only rider who was able to stay with Bernal was Almeida while Yates continued to lead at the front. Inside the final kilometre, Almeida dropped Bernal but Yates held on to the stage win, 11 seconds ahead of Almeida. Bernal crossed the line 28 seconds down while Caruso and Vlasov finished a further 4 seconds in arrears. In the GC, Bernal increased his advantage over Caruso to 2' 29". As a result of his win, Yates moved to within 20 seconds off of Caruso's second place while there were no other riders within six minutes of Bernal's lead. Aside from the increase in time gaps, there were no movements inside the top ten.
Stage 19 Result :
| Rank | Rider | Team | Time |
| 1 | Simon Yates (GBR) | Team BikeExchange | 4h 02' 55" |
| 2 | João Almeida (POR) | Deceuninck–Quick-Step | + 11" |
| 3 | Egan Bernal (COL) | Ineos Grenadiers | + 28" |
| 4 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 32" |
| 5 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 32" |
| 6 | Dan Martin (IRL) | Israel Start-Up Nation | + 42" |
| 7 | Daniel Martínez (COL) | Ineos Grenadiers | + 49" |
| 8 | Koen Bouwman (NED) | Team Jumbo–Visma | + 1' 25" |
| 9 | Tobias Foss (NOR) | Team Jumbo–Visma | + 1' 25" |
| 10 | Romain Bardet (FRA) | Team DSM | + 1' 25" |
General classification after Stage 19 :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 81h 13' 37" |
| 2 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 2' 29" |
| 3 | Simon Yates (GBR) | Team BikeExchange | + 2' 49" |
| 4 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 6' 11" |
| 5 | Hugh Carthy (GBR) | EF Education–Nippo | + 7' 10" |
| 6 | Romain Bardet (FRA) | Team DSM | + 7' 32" |
| 7 | Daniel Martínez (COL) | Ineos Grenadiers | + 7' 42" |
| 8 | João Almeida (POR) | Deceuninck–Quick-Step | + 8' 26" |
| 9 | Tobias Foss (NOR) | Team Jumbo–Visma | + 10' 19" |
| 10 | Dan Martin (IRL) | Israel Start-Up Nation | + 13' 55" |

## Stage 20
### 29 May 2021 — Verbania to Valle Spluga (Alpe Motta), 164 km (102 mi)

The penultimate stage of the race took the riders over three first-category climbs in the final half of the stage, finishing with a summit finish at the climb of Alpe Motta. The first 82.5 kilometres (51.3 mi) were mostly flat, along with an intermediate sprint after 16.9 kilometres (10.5 mi). After the race entered Switzerland, the riders tackled the climb of Passo San Bernardino. The climb is the longest of this year's Giro with a length of 23.7 kilometres (14.7 mi) and an average gradient of 6.2 per cent. Following a short descent, the riders tackled the climb of Passo Dello Spluga, which has a length of 8.9 kilometres (5.5 mi) and an average gradient of 7.3 per cent. The summit represented the Swiss/Italian border as the riders went back to Italy on the descent. The final climb of the Giro is the Alpe Motta. The climb goes on for 7.3 kilometres (4.5 mi) with an average gradient of 7.6 per cent. Towards the middle of the climb, there is a kilometre which averaged 0.8 per cent, with this section including the intermediate sprint for bonus seconds.
In the first part of the stage, no break went away as the riders reached the intermediate sprint. In the sprint, points classification leader Peter Sagan (Bora–Hansgrohe) elected to simply control the sprint. While his main rivals, Davide Cimolai (Israel Start-Up Nation) and Fernando Gaviria (UAE Team Emirates), were able to take some points, Sagan's lead was still large enough that he only had to make it through to Milan to take the maglia ciclamino. After the sprint, it would take a while until a group of nine riders broke away from the peloton after 45 kilometres (28 mi). The break would be allowed to build a maximum advantage of around five minutes before Team BikeExchange, Deceuninck–Quick-Step, and Trek–Segafredo started chasing. By the foot of the first climb of the day, the break's lead was decreased to three and a half minutes. On the climb of Passo San Bernardino, Louis Vervaeke (Alpecin–Fenix) instigated the attacks up front. Four other riders would eventually join him but their advantage rapidly decreased all the way to the top of the climb after Team DSM increased the pace in the peloton. At the summit of the climb, the break's lead was down to less than a minute. From the peloton, a trio of Team DSM riders, including Romain Bardet, attacked on the descent. The Team Bahrain Victorious duo of Damiano Caruso and Pello Bilbao also joined the move, prompting Ineos Grenadiers to take up the chase as Caruso was the closest threat to Egan Bernal's maglia rosa. The quintet joined the break up front and they started the climb of Passo Dello Spluga with a lead of around 20 seconds over the peloton.
On the climb, Bilbao and Michael Storer (Team DSM) set a furious pace up front, dropping all of the breakaway riders as only four riders, including Caruso and Bardet, remained at the front. The pace allowed the quartet to build a lead of around 50 seconds over the Ineos-led peloton. They eventually crossed the summit with a lead of 43 seconds. On the descent, Aleksandr Vlasov (Astana–Premier Tech) tried to cause some splits in the peloton but there would be a regrouping as the riders continued to descend. Up front, the quartet's advantage stabilized to around 40 seconds as Jonathan Castroviejo (Ineos Grenadiers) kept them in check. Near the foot of the final climb, Storer was the first to be dropped as Bilbao continued to work for Caruso. With 6.5 kilometres (4.0 mi) to go, Bilbao was eventually distanced while Caruso picked up the pace. From behind, Daniel Martínez (Ineos Grenadiers) set a fast pace that decreased the leading duo's advantage to less than 30 seconds. His pace also dropped every rider in the group of favorites with the exception of his leader, Bernal. With 2 kilometres (1.2 mi) to the top, Caruso dropped Bardet as he set off in pursuit of the win. Caruso would eventually solo to the stage win, his first Grand Tour victory. He crossed the line 24 seconds ahead of Bernal and 35 seconds ahead of Martínez and Bardet. The other favorites crossed the line in drips and drabs from behind. In terms of the GC, Bernal solidified his lead as he went into the final stage time trial with a lead of almost two minutes over Caruso. Yates lost more than half a minute to Bernal but he had more than three minutes on hand over Vlasov in fourth, almost ensuring him of the third step on the podium. Additionally, the fifth to eighth spots in the top ten were only separated by around a minute heading into the time trial. As the ascent of Alpe Motta was the final climb of the race, Geoffrey Bouchard (AG2R Citroën Team) also sealed his lead in the mountains classification and he only has to finish the time trial to officially win the maglia azzurra.
Stage 20 Result :
| Rank | Rider | Team | Time |
| 1 | Damiano Caruso (ITA) | Team Bahrain Victorious | 4h 27' 53" |
| 2 | Egan Bernal (COL) | Ineos Grenadiers | + 24" |
| 3 | Daniel Martínez (COL) | Ineos Grenadiers | + 35" |
| 4 | Romain Bardet (FRA) | Team DSM | + 35" |
| 5 | João Almeida (POR) | Deceuninck–Quick-Step | + 41" |
| 6 | Simon Yates (GBR) | Team BikeExchange | + 51" |
| 7 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 1' 13" |
| 8 | Hugh Carthy (GBR) | EF Education–Nippo | + 1' 29" |
| 9 | Lorenzo Fortunato (ITA) | Eolo–Kometa | + 2' 07" |
| 10 | Antonio Pedrero (ESP) | Movistar Team | + 2' 23" |
General classification after Stage 20 :
| Rank | Rider | Team | Time |
| 1 | Egan Bernal (COL) | Ineos Grenadiers | 85h 41' 47" |
| 2 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 1' 59" |
| 3 | Simon Yates (GBR) | Team BikeExchange | + 3' 23" |
| 4 | Aleksandr Vlasov (RUS) | Astana–Premier Tech | + 7' 07" |
| 5 | Romain Bardet (FRA) | Team DSM | + 7' 48" |
| 6 | Daniel Martínez (COL) | Ineos Grenadiers | + 7' 56" |
| 7 | Hugh Carthy (GBR) | EF Education–Nippo | + 8' 22" |
| 8 | João Almeida (POR) | Deceuninck–Quick-Step | + 8' 50" |
| 9 | Tobias Foss (NOR) | Team Jumbo–Visma | + 12' 39" |
| 10 | Dan Martin (IRL) | Israel Start-Up Nation | + 16' 48" |

## Stage 21
### 30 May 2021 — Senago to Milano, 30.3 km (18.8 mi) (ITT)

For the third successive year, the Giro finished with an individual time trial. In this occasion, the course was twice as long as the final time trials in the previous two years, with the riders tackling a 30.3 kilometres (18.8 mi) course from Senago to Milan. Time splits were taken after 9.2 kilometres (5.7 mi) and after 19.7 kilometres (12.2 mi). The course is flat all the way through which meant that the course suited the pure time trialists.
The first rider to set a good time was Maciej Bodnar (Bora–Hansgrohe), setting a time of 34' 42". However, the time would soon be beaten by Filippo Ganna (Ineos Grenadiers), the time trial world champion, as he set a time of 33' 48". His ride did not go as smoothly as planned as he suffered from a flat tire with around 3 kilometres (1.9 mi) to go. His time would stand as the best time for the rest of the day, taking his fifth consecutive victory in time trials at the Giro. Edoardo Affini (Team Jumbo–Visma), who started shortly after Ganna started, came close to beating Ganna's time but he eventually fell short by 13 seconds. Another rider who threatened Ganna's time was French time trial champion, Rémi Cavagna (Deceuninck–Quick-Step). He was 13 and 18 seconds down after the first and second intermediate time checks, respectively. However, he crashed into the barriers inside the final kilometre, ending his chances of beating Ganna's time. He got back on his bike quickly but he eventually finished second, 12 seconds behind Ganna's time. Along the way, Peter Sagan (Bora–Hansgrohe) and Geoffrey Bouchard (AG2R Citroën Team) safely negotiated the course to confirm their victories in the points and mountains classification, respectively.
Soon, the GC contenders started the course. While the top four riders had enough gap from each other to retain their positions, the fifth to eighth riders were only separated by 1' 02". The first of those riders to go down the start ramp was João Almeida (Deceuninck–Quick-Step). He set a time of 34' 15", 27 seconds behind Ganna and good for fifth on the stage. His ride was enough to leapfrog both Romain Bardet (Team DSM) and Hugh Carthy (EF Education–Nippo), who set times of 35' 58" and 36' 15", respectively. Almeida also came close to passing Daniel Martínez (Ineos Grenadiers) for fifth in the GC but he fell short by fractions of a second as Martínez set a time of 35' 09", 14th on the stage. Aleksandr Vlasov set a time of 35' 14", good for 19th on the stage to confirm his position as fourth in the GC. Simon Yates (Team BikeExchange) set a time of 36' 33" to retain the last step on the podium while Damiano Caruso (Team Bahrain Victorious) finished with a time of 35' 11" to finish on the podium for the first time in his career. Egan Bernal (Ineos Grenadiers), the race leader, was the last rider off the start ramp. He safely negotiated the course, finishing with a time of 35' 41" and celebrating his first Giro victory as he crossed the line. This also marked his second Grand Tour victory overall, after his Tour victory in 2019. He also took home the victory in the young riders classification. The traditional prize-giving commenced shortly afterwards.
Stage 21 Result :
| Rank | Rider | Team | Time |
| 1 | Filippo Ganna (ITA) | Ineos Grenadiers | 33' 48" |
| 2 | Rémi Cavagna (FRA) | Deceuninck–Quick-Step | + 12" |
| 3 | Edoardo Affini (ITA) | Team Jumbo–Visma | + 13" |
| 4 | Matteo Sobrero (ITA) | Astana–Premier Tech | + 14" |
| 5 | João Almeida (POR) | Deceuninck–Quick-Step | + 27" |
| 6 | Max Walscheid (GER) | Team Qhubeka Assos | + 33" |
| 7 | Alberto Bettiol (ITA) | EF Education–Nippo | + 34" |
| 8 | Jan Tratnik (SLO) | Team Bahrain Victorious | + 42" |
| 9 | Gianni Moscon (ITA) | Ineos Grenadiers | + 44" |
| 10 | Iljo Keisse (BEL) | Deceuninck–Quick-Step | + 47" |
Final General Classification :
| 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" |