Gallery: A photo a day from a most intriguing Giro d’Italia

The lap of Italy that had a bit of everything.

Iain Treloar
by Iain Treloar 31.05.2023 Photography by
Kristof Ramon, The Grubers, and Cor Vos
More from Iain +

The pink confetti has settled on the streets of Rome, been spattered with spumante and then scattered to the breeze.

The 2023 Giro d’Italia was a race that was equal parts dramatic and drab, raced under metaphorical clouds (COVID) and literal (the type that rain). But it built patiently to a spellbinding crescendo. After three weeks of hard-fought racing across Italy, Primož Roglič (Jumbo-Visma) emerged victorious, snatching his first Giro d’Italia title by a tiny margin in the climactic stage 20 time trial.

Throughout May, our photographers shot thousands of frames, each a little snapshot of the greater tale of this venerable bike race. Here’s one for each stage – our little way of saying arrivederci and grazie to the Giro, before we dive headlong into the rest of the season.

Stage 1: Pre-race favourite Remco Evenepoel kicked his Giro campaign off in style, winning the opening time trial along the Adriatic coast.
Stage 2: Jonathan Milan – who, according to his Wikipedia page, skirts veeeery close to IP infringement with his nickname of ‘The Italian Stallion’ – won the first sprint stage of his first Grand Tour. The 22-year-old would go on to finish second on four stages over the course of the race, winning the points classification in the process. Teamwork makes the dream work, as Yukiya Arashiro’s delight shows.
Stage 3: Michael Matthews is the king of the gritty uphill finish, and on stage 3 pipped Mads Pedersen to the line.
Stage 4: Into the Apennine Mountains, the peloton watched a breakaway group slip away. Aurélien Paret-Peintre (AG2R Citroën) took stage honours, with Andreas Leknessund (pictured) going deep for his second place, moving into the maglia rosa for an extended stint as a result.
Stage 5: Dire weather was well on its way to becoming a theme of the Giro, and on stage 5, Mark Cavendish – in his final Giro and final season – literally slid across the line. Kaden Groves (Alpecin-Deceuninck) took the win, but shot of the day was, if not the finish line photo, Cav sitting after the line thoroughly perplexed about how he got there.
Stage 6: It was heartbreak for the breakaway on stage 6, with the two survivors of a day-long five-rider break – Alessandro de Marchi and Simon Clarke – caught within 200 m of the finish. Mads Pedersen (Trek-Segafredo) would take stage honours, while Clarke and De Marchi were left to rue what could’ve been.
Stage 7: And then it was back into the mountains, with a stage animated by a breakaway of riders from minor teams. Davide Bais (EOLO-Kometa) would take the stage, while there was an uneasy detente among the GC contenders.
Stage 8: On the road to Fossombrone, season-sensation Ben Healy (EF Education-Easypost) slipped away for an audacious long-range stage-winning attack, ahead of Derek Gee (remember that name). Primož Roglič and Geraint Thomas shared this tender moment of sportsmanship, a nice pictorial representation of the mutual respect that would repeatedly be on display throughout the remainder of the race.
Stage 9: Remco Evenepoel took his second stage win in the race’s second time trial, again moving into the race lead. But all was not well, as his heavily fatigued face foreshadowed. A few hours later, his positive test for COVID was announced, and Evenepoel left the race. In the days that followed, most of his team followed suit – just two of the starting eight would end up making it to Rome.
Stage 10: Magnus Cort completed his set of Grand Tour stage wins into Viareggio, conquering grim weather and the best efforts of Derek Gee, who would have to settle for second again – and still not for the last time, as it would turn out.
Stage 11: A hard-fought sprint went down to the wire in Tortona, with Pascal Ackermann (UAE Team Emirates) besting Jonathan Milan by the slimmest of margins. Mark Cavendish was improving over the course of the race after a tumultuous opening stretch, taking third.
Stage 12: If Derek Gee was the breakaway sensation of the Giro, Toms Skujiņš wasn’t far behind. On the road to Rivoli, the Latvian came a frustrated second to Nico Denz (Bora-Hansgrohe).
Stage 13: With the mountains looming again, the route on stage 13 was shortened due to rain and an extreme weather protocol. The riders would head straight up the Croix de Coeur, surrounded by snowy peaks. A breakaway group formed – including Thibaut Pinot, Derek Gee, Einer Augusto Rubio, and Jefferson Cepeda – with Pinot Pinot-ing his way to second place. An unlikely war of words would go on to erupt on Twitter, overshadowing Rubio’s canny stage win.
Stage 14: On another grim day, Nico Denz snapped up his second stage win, pushing a disappointed Gee into second place, again again.
Stage 15: The sun was finally out into Bergamo, on a course heavily influenced by Il Lombardia. Ben Healy (EF Education-Easypost) was again making moves in the breakaway, but Brandon McNulty (UAE-Team Emirates) got the better of him with a perfectly timed sprint.
Stage 16: A day later, it was another UAE Team Emirates rider picking up the flowers. The Giro has been a happy hunting ground for João Almeida, who led the race for 15 days in 2021 before finishing fourth overall, and who finished sixth in 2022. 2023 was his best campaign to date, beating Geraint Thomas here to a stage win, winning the best young rider classification, and finishing third on GC. All while growing a little moustache. Not bad, João. Not bad.
Stage 17: A gently downhill 17th stage offered some respite from the weather woes that had plagued the race. A more relaxed peloton lazed around at the start before rolling through the Treviso Region. Alberto Dainese (DSM) would take stage honours, but this lovely little scene showed the beauty of the race.
Stage 18: Back into the mountains on stage 18, a group of seven slipped away – notably containing Italian champion Filippo Zana and Thibaut Pinot. A duel beckoned between the two on the approach to the summit finish on Val di Zoldo, with a more-cagey Pinot again forced to settle for second best behind the young Italian, pictured here having a sip of water on his way past an appropriately decorated old barn with mountains looming behind.
Stage 19: With just a minute separating the top three on the GC – Thomas carrying a 29-second lead over Roglič – the closing days of the Giro were set up for some scintillating racing. The brutal summit finish at Tre Cime de Lavaredo was clinched by Santiago Buitrago (Bahrain Victorious), followed by – you guessed it – Derek Gee.

All eyes were on the battle behind, though. In the finale, an attack from Thomas opened daylight to Roglič and Almeida, before the Slovenian fought his way back, ultimately taking a precious three seconds out of Thomas’ lead heading into the final time trial.
Stage 20: And oh, what is there left to say about that time trial? In a highly dramatic day’s racing on a stupidly steep mountain, Primož Roglič overcame a mechanical issue and the demons of the 2020 Tour de France on his way to a decisive stage win at Monte Lussari. He went into the stage with a 26-second deficit to Thomas, and by day’s end had a 14-second lead. On a course lined with Slovenian spectators willing him on, it was about as perfectly scripted a conclusion to the Giro as could be conjured.
Stage 21: A day later, the peloton transplanted itself to Rome for a ceremonial race through that beautiful city. Mark Cavendish would finish his Giro d’Italia story with a stage win in front of the Colosseum, while Roglič was a popular winner of a race that had a bit of everything. Geraint Thomas would finish a gracious second on GC, with João Almeida rounding out the podium a minute back.

What did you think of this story?