
Sunday, July 5: Stage 2, Tarragona - Barcelona (Olympic Stadium), 168.5 km
Stage 2 map & profile | Stage 2 photos

Isaac del Toro (right) wins the stage with Tadej Pogacar right with him. On the right, Remco Evenepoel was third. Jonas Vingegaard (in yellow, just behind them) remains the GC leader. Photo: ASO/Thomas Maheux
Plato's dialogue Apology is available in both Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Barcelona at 2:20 PM, local time: 32C (90F), sunny, with the wind from the south at 24 km/hr (15 mph). No rain is forecast.
Rated ascents:
The stage: Tour Boss Christian Prudhomme writes: Barcelona’s Montjuïc hill is one of the must-see locations in the cycling world, largely thanks to it being the traditional finale for the Tour of Catalonia. The most powerful puncheurs are right at home here: the last three winners on the stage over this outcrop were Primož Roglič (2025), Tadej Pogačar (2024) and Remco Evenepoel (2023), each a good fit of the profile of the likely winner. In fact, given the run of climbs in the final kilometres, the chance of a rider of this type winning will be increased because the circuit will be even more gruelling than it is during the Catalan event each spring.
The race: Clément Berthet (Groupama-FDJ United) did not start. Participating in the Tour de France after he missed the Giro due to a knee injury, Berthet suffered a high speed crash yesterday that led to Guillaume Martin-Guyonnet hitting the deck. Both of them made it to the end of the stage but further examinations revealed Berthet suffered a concussion.
Here's the race organizer's stage two summary:
Side by side, Isaac del Toro and Tadej Pogacar ruled the final uphill in Montjuïc to achieve a dominant 1-2 finish at the end of stage 2 of the Tour de France 2026. Their UAE Emirates-XRG teammates controlled the second half of the day, starting in Tarragona and heading to a demanding circuit in Barcelona. Mattias Skjelmose (Lidl-Trek) attacked inside the last two kilometres but the Mexican youngster flew past him, with his Slovenian leader on his wheel. Pogacar looked back to control Remco Evenepoel (Red Bull-Bora-Hansgrohe), third on the day, and Jonas Vingegaard (Visma-Lease a Bike), who retains the Maillot Jaune after finishing fourth. Del Toro is the second Mexican stage winner in the history of the Tour after Raul Alcala (2 stages in 1989, 1990). It’s the first time UAE Emirates-XRG claim the first two places on the stage.

The Uno-X Pro Cycling Team at the pre-race teams presentation ceremony.
The race:
The action got going spectacularly on Saturday, and more fireworks are in sight in Montjuïc, once again at the center of final battles on stage 2 of the Tour de France 2026. After the opening team time trial that smiled on Jonas Vingegaard, the peloton face a 168.5 km explosive stage starting in Tarragona, now the southernmost stage town in the history of the event.
The route features 2,500 metres of elevation, mostly packed in the second half of the stage and especially on the final 12.2 km circuit. There, the riders will battle it out with three ascents of the Côte du château de Montjuïc (1.6km at 9.3%). The summit will be passed for the last time with just 2.5 km to go to the line.

Stage two gets started in the city of Tarragona. Photo: ASO/Thomas Maheux
First attacks:
Baptiste Veistroffer (Lotto Intermarché) is the first attacker of the Tour, as soon as the flag drops. But he’s not the only rider willing to make the break. After a series of attacks and counter-attacks, Felix Engelhardt (Jayco AlUla) initiates the right move at km 4. He’s immediately followed by Frank van den Broek (Picnic PostNL). Alex Molenaar (Caja Rural-Seguros RGA) bridges the gap a couple of kilometres later to make it a three-man breakaway.
Veistroffer also tries to join the front group but he gives up after some 15 kilometres of pursuit. As he’s reeled in, the gap reaches its highest mark for the day: 3’55’’ at km 27. Tom Pidcock’s Pinarello-Q36.5 take the reins of the bunch to control the gap early on.
First KOM points:
Only trailing by 1’12’’ in the overall standings, Molenaar virtually takes the Maillot Jaune. He also dominates the intermediate sprint in Viladecans (km 85.6), where Biniam Girmay (NSN) shows his speed to get the better Mads Pedersen (Lidl-Trek) and Jasper Philipsen (Alpecin-Premier Tech). But Molenaar’s eyes are mostly set on the polka-dot jersey. And he conquers the first categorised summit of the Tour 2026, in Begues (km 94.2, cat. 2).
UAE Emirates-XRG up the ante. After the summit, only two riders remain at the front: Molenaar and Engelhardt. Their lead is down to 20 seconds. The gap momentarily gets back up to 45 seconds but they’re eventually reeled in with 32 kilometres to go, just before entering the final circuit. Meanwhile, Paul Seixas (Decathlon CMA CGM) chases behind after a mechanical.
First head-to-head battles:
Brandon McNulty (UAE Emirates-XRG) sets a brutal pace to thin out the peloton, down to some 30 riders as they enter the final two laps. Pogacar’s American teammate drives the bunch until the bottom of the final ascent of the day.
Tiesj Benoot (Decathlon CMA CGM) and Adam Yates (UAE Emirates-XRG) up the ante, but the main contenders stay together until the summit, despite a couple of late attacks by Tobias Johannessen (Uno-X Mobility) and Richard Carapaz (EF Edcuation-EasyPost). Mattias Skjelmose (Lidl-Trek) also tries his luck on the downhill, inside the last two kilometres.
Isaac del Toro (UAE Emirates-XRG) controls the Dane’s move… and flies past him as they tackle the final 700 metres, uphill. In his wake, Pogacar controls their rivals and celebrates alongside his teammate, only the second Mexican stage winner in the Tour after Raul Alcala. Remco Evenepoel (Red Bull-Bora-Hansgrohe) finishes third ahead of Jonas Vingegaard (Visma-Lease a Bike), who retains the Maillot Jaune with a lead of six seconds to Pogacar.
Complete results:
168.5 kilometers raced at an average speed of 45.951 km/hr
| 1 | Isaac del Toro | UAE Team Emirates-XRG | 3hr 40min 1sec |
| 2 | Tadej Pogacar | UAE Team Emirates-XRG | s.t. |
| 3 | Remco Evenepoel | Red Bull-BORA-hansgrohe | s.t. |
| 4 | Jonas Vingegaard | Team Visma | Lease a Bike | s.t. |
| 5 | Mattias Skjelmose | Lidl-Trek | @ 3sec |
| 6 | Tobias Halland Johannessen | Uno-X Mobility | s.t. |
| 7 | Romain Grégoire | Groupama-FDJ United | s.t. |
| 8 | Lenny Martinez | Bahrain Victorious | s.t. |
| 9 | Paul Seixas | Decathlon CMA CGM Team | s.t. |
| 10 | Tom Pidcock | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 11 | Lennert Van Eetvelt | Lotto-Intermarché | s.t. |
| 12 | Juan Ayuso | Lidl-Trek | s.t. |
| 13 | Ilan Van Wilder | Soudal Quick-Step | s.t. |
| 14 | Richard Carapaz | EF Education-EasyPost | 0:07 |
| 15 | Alex Baudin | EF Education-EasyPost | 0:10 |
| 16 | Florian Lipowitz | Red Bull-BORA-hansgrohe | s.t. |
| 17 | Cian Uijtdebroeks | Movistar Team | 0:27 |
| 18 | Adam Yates | UAE Team Emirates-XRG | 0:39 |
| 19 | Sergio Higuita | XDS Astana Team | 0:43 |
| 20 | Tobias Foss | Netcompany INEOS Cycling Team | s.t. |
| 21 | Thymen Arensman | Netcompany INEOS Cycling Team | 0:47 |
| 22 | Mathieu van der Poel | Alpecin-Premier Tech | s.t. |
| 23 | Egan Bernal | Netcompany INEOS Cycling Team | s.t. |
| 24 | Alex Aranburu | Cofidis | 0:49 |
| 25 | Harold Tejada | XDS Astana Team | 0:51 |
| 26 | José Félix Parra | Caja Rural-Seguros RGA | 0:54 |
| 27 | Yannis Voisard | Tudor Pro Cycling Team | 1:10 |
| 28 | Davide Piganzoli | Team Visma | Lease a Bike | s.t. |
| 29 | Jordan Jegat | Team TotalEnergies | s.t. |
| 30 | Ion Izagirre | Cofidis | 1:11 |
| 31 | Javier Romo | Movistar Team | 1:18 |
| 32 | Abel Balderstone | Caja Rural-Seguros RGA | s.t. |
| 33 | Joris Delbove | Team TotalEnergies | 1:36 |
| 34 | Sean Quinn | EF Education-EasyPost | 1:39 |
| 35 | Torstein Træen | Uno-X Mobility | 1:55 |
| 36 | Jai Hindley | Red Bull-BORA-hansgrohe | s.t. |
| 37 | Tiesj Benoot | Decathlon CMA CGM Team | s.t. |
| 38 | Mathias Vacek | Lidl-Trek | 5:02 |
| 39 | Brandon McNulty | UAE Team Emirates-XRG | s.t. |
| 40 | Ben O'Connor | Team Jayco-AlUla | 5:31 |
| 41 | Matthew Riccitello | Decathlon CMA CGM Team | s.t. |
| 42 | Guillaume Martin-Guyonnet | Groupama-FDJ United | s.t. |
| 43 | George Bennett | NSN Cycling Team | s.t. |
| 44 | Luke Plapp | Team Jayco-AlUla | s.t. |
| 45 | Derek Gee-West | Lidl-Trek | s.t. |
| 46 | Antonio Tiberi | Bahrain Victorious | 5:44 |
| 47 | Quinten Hermans | Pinarello-Q36.5 Pro Cycling Team | 5:57 |
| 48 | Matteo Jorgenson | Team Visma | Lease a Bike | 6:03 |
| 49 | Mauro Schmid | Team Jayco-AlUla | 6:21 |
| 50 | Bruno Armirail | Team Visma | Lease a Bike | 6:52 |
| 51 | Kévin Vauquelin | Netcompany INEOS Cycling Team | s.t. |
| 52 | Sepp Kuss | Team Visma | Lease a Bike | s.t. |
| 53 | Anders Halland Johannessen | Uno-X Mobility | s.t. |
| 54 | Clément Braz Afonso | Groupama-FDJ United | 7:15 |
| 55 | Anders Skaarseth | Uno-X Mobility | 8:40 |
| 56 | Pascal Eenkhoorn | Soudal Quick-Step | 9:28 |
| 57 | Georg Steinhauser | EF Education-EasyPost | s.t. |
| 58 | Georg Zimmermann | Lotto-Intermarché | s.t. |
| 59 | Rick Pluimers | Tudor Pro Cycling Team | s.t. |
| 60 | Robbe Dhondt | Team Picnic PostNL | s.t. |
| 61 | Sebastian Berwick | Caja Rural-Seguros RGA | s.t. |
| 62 | Nicolas Prodhomme | Decathlon CMA CGM Team | s.t. |
| 63 | Louis Vervaeke | Soudal Quick-Step | s.t. |
| 64 | Marc Hirschi | Tudor Pro Cycling Team | s.t. |
| 65 | Lars Craps | Lotto-Intermarché | s.t. |
| 66 | Emiel Verstrynge | Alpecin-Premier Tech | s.t. |
| 67 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 68 | Ramses Debruyne | Alpecin-Premier Tech | 9:40 |
| 69 | Quentin Pacher | Groupama-FDJ United | 10:24 |
| 70 | Joel Nicolau | Caja Rural-Seguros RGA | 11:01 |
| 71 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 11:06 |
| 72 | Xandro Meurisse | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 73 | Damiano Caruso | Bahrain Victorious | s.t. |
| 74 | Thibault Guernalec | Team TotalEnergies | s.t. |
| 75 | Marco Frigo | NSN Cycling Team | s.t. |
| 76 | Robert Stannard | Bahrain Victorious | s.t. |
| 77 | Nelson Oliveira | Movistar Team | s.t. |
| 78 | Lorenzo Germani | Groupama-FDJ United | s.t. |
| 79 | Ewen Costiou | Groupama-FDJ United | s.t. |
| 80 | Alexandre Delettre | Team TotalEnergies | s.t. |
| 81 | Mattéo Vercher | Team TotalEnergies | s.t. |
| 82 | Nicolas Breuillard | Team TotalEnergies | s.t. |
| 83 | Mattia Cattaneo | Red Bull-BORA-hansgrohe | s.t. |
| 84 | Benjamin Thomas | Cofidis | s.t. |
| 85 | Joshua Tarling | Netcompany INEOS Cycling Team | s.t. |
| 86 | Michal Kwiatkowski | Netcompany INEOS Cycling Team | s.t. |
| 87 | Mike Teunissen | XDS Astana Team | s.t. |
| 88 | Luke Durbridge | Team Jayco-AlUla | s.t. |
| 89 | Dylan van Baarle | Soudal Quick-Step | s.t. |
| 90 | Raúl García | Movistar Team | s.t. |
| 91 | Julian Alaphilippe | Tudor Pro Cycling Team | s.t. |
| 92 | Michael Matthews | Team Jayco-AlUla | 11:57 |
| 93 | Valentin Paret-Peintre | Soudal Quick-Step | 12:08 |
| 94 | Clément Russo | Groupama-FDJ United | s.t. |
| 95 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 96 | Aurélien Paret-Peintre | Decathlon CMA CGM Team | s.t. |
| 97 | Aaron Gate | XDS Astana Team | s.t. |
| 98 | Victor Campenaerts | Team Visma | Lease a Bike | s.t. |
| 99 | Tim Wellens | UAE Team Emirates-XRG | s.t. |
| 100 | Felix Grossschartner | UAE Team Emirates-XRG | s.t. |
| 101 | Mathis Le Berre | Team TotalEnergies | s.t. |
| 102 | Carlos Verona | Lidl-Trek | s.t. |
| 103 | Jonas Rickaert | Alpecin-Premier Tech | s.t. |
| 104 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 105 | Max Walker | EF Education-EasyPost | 12:16 |
| 106 | Michael Valgren | EF Education-EasyPost | s.t. |
| 107 | Ben Healy | EF Education-EasyPost | s.t. |
| 108 | Michel Hessmann | Movistar Team | s.t. |
| 109 | Jenno Berckmoes | Lotto-Intermarché | s.t. |
| 110 | Lewis Askey | NSN Cycling Team | 12:30 |
| 111 | Edward Planckaert | Alpecin-Premier Tech | 12:47 |
| 112 | Felix Engelhardt | Team Jayco-AlUla | 13:33 |
| 113 | Nils Politt | UAE Team Emirates-XRG | s.t. |
| 114 | Jonas Abrahamsen | Uno-X Mobility | s.t. |
| 115 | Tom Van Asbroeck | NSN Cycling Team | s.t. |
| 116 | Silvan Dillier | Alpecin-Premier Tech | s.t. |
| 117 | Nicolas Vinokurov | XDS Astana Team | s.t. |
| 118 | Hugo Page | Cofidis | s.t. |
| 119 | Einer Rubio | Movistar Team | s.t. |
| 120 | Nico Denz | Red Bull-BORA-hansgrohe | s.t. |
| 121 | Dorian Godon | Netcompany INEOS Cycling Team | s.t. |
| 122 | Warren Barguil | Team Picnic PostNL | s.t. |
| 123 | John Degenkolb | Team Picnic PostNL | s.t. |
| 124 | Xabier Azparren | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 125 | Damien Howson | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 126 | Jefferson Cepeda | Movistar Team | s.t. |
| 127 | Pablo Castrillo | Movistar Team | s.t. |
| 128 | Tim Marsman | Alpecin-Premier Tech | s.t. |
| 129 | Anthon Charmig | Uno-X Mobility | s.t. |
| 130 | Anthony Turgis | Team TotalEnergies | s.t. |
| 131 | Matis Louvel | NSN Cycling Team | s.t. |
| 132 | Jasper Philipsen | Alpecin-Premier Tech | s.t. |
| 133 | Jasper Stuyven | Soudal Quick-Step | s.t. |
| 134 | Brent Van Moer | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 135 | Florian Vermeersch | UAE Team Emirates-XRG | s.t. |
| 136 | Tim van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 137 | Frits Biesterbos | Team Picnic PostNL | s.t. |
| 138 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 139 | Pavel Bittner | Team Picnic PostNL | s.t. |
| 140 | Stefano Oldani | Caja Rural-Seguros RGA | s.t. |
| 141 | Fernando Gaviria | Caja Rural-Seguros RGA | s.t. |
| 142 | Max Kanter | XDS Astana Team | s.t. |
| 143 | Jenthe Biermans | Cofidis | s.t. |
| 144 | Jakub Otruba | Caja Rural-Seguros RGA | s.t. |
| 145 | Toms Skujins | Lidl-Trek | s.t. |
| 146 | Krists Neilands | NSN Cycling Team | s.t. |
| 147 | Tim Merlier | Soudal Quick-Step | s.t. |
| 148 | Daan Hoole | Decathlon CMA CGM Team | s.t. |
| 149 | Milan Fretin | Cofidis | 13:46 |
| 150 | Magnus Cort | Uno-X Mobility | 13:52 |
| 151 | Matej Mohoric | Bahrain Victorious | 13:56 |
| 152 | Jan Tratnik | Red Bull-BORA-hansgrohe | s.t. |
| 153 | Quinn Simmons | Lidl-Trek | s.t. |
| 154 | Alex Kirsch | Cofidis | s.t. |
| 155 | Jake Stewart | NSN Cycling Team | s.t. |
| 156 | Mads Pedersen | Lidl-Trek | s.t. |
| 157 | Biniam Girmay | NSN Cycling Team | s.t. |
| 158 | Arvid de Kleijn | Tudor Pro Cycling Team | s.t. |
| 159 | Phil Bauhaus | Bahrain Victorious | s.t. |
| 160 | Julius van den Berg | Team Picnic PostNL | s.t. |
| 161 | Frank van den Broek | Team Picnic PostNL | s.t. |
| 162 | Pascal Ackermann | Team Jayco-AlUla | s.t. |
| 163 | Kamil Gradek | Bahrain Victorious | s.t. |
| 164 | Simone Velasco | XDS Astana Team | s.t. |
| 165 | Alex Molenaar | Caja Rural-Seguros RGA | s.t. |
| 166 | Piet Allegaert | Cofidis | s.t. |
| 167 | Vlad Van Mechelen | Bahrain Victorious | 14:20 |
| 168 | Fred Wright | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 169 | Filippo Ganna | Netcompany INEOS Cycling Team | 14:43 |
| 170 | Bert Van Lerberghe | Soudal Quick-Step | 14:51 |
| 171 | Per Strand Hagenes | Team Visma | Lease a Bike | 15:02 |
| 172 | Søren Wærenskjold | Uno-X Mobility | 15:06 |
| 173 | Matteo Trentin | Tudor Pro Cycling Team | 15:29 |
| 174 | Huub Artz | Lotto-Intermarché | s.t. |
| 175 | Davide Ballerini | XDS Astana Team | 15:44 |
| 176 | Marco Haller | Tudor Pro Cycling Team | 16:08 |
| 177 | Liam Slock | Lotto-Intermarché | 16:33 |
| 178 | Edoardo Affini | Team Visma | Lease a Bike | 16:47 |
| 179 | Kelland O'Brien | Team Jayco-AlUla | 17:49 |
| 180 | Olav Kooij | Decathlon CMA CGM Team | 18:08 |
| 181 | Cees Bol | Decathlon CMA CGM Team | s.t. |
| 182 | Baptiste Veistroffer | Lotto-Intermarché | 18:25 |
| 183 | Arnaud De Lie | Lotto-Intermarché | s.t. |
GC after stage 2:
188.1 kilometers raced so far at an average speed of 46.675 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 4hr 1min 48sec |
| 2 | Tadej Pogacar | UAE Team Emirates-XRG | @ 6sec |
| 3 | Remco Evenepoel | Red Bull-BORA-hansgrohe | 0:15 |
| 4 | Isaac del Toro | UAE Team Emirates-XRG | 0:16 |
| 5 | Juan Ayuso | Lidl-Trek | 0:19 |
| 6 | Paul Seixas | Decathlon CMA CGM Team | 0:42 |
| 7 | Romain Grégoire | Groupama-FDJ United | 0:44 |
| 8 | Florian Lipowitz | Red Bull-BORA-hansgrohe | 0:45 |
| 9 | Lenny Martinez | Bahrain Victorious | 0:53 |
| 10 | Tom Pidcock | Pinarello-Q36.5 Pro Cycling Team | 1:00 |
| 11 | Ilan Van Wilder | Soudal Quick-Step | 1:01 |
| 12 | Tobias Halland Johannessen | Uno-X Mobility | 1:03 |
| 13 | Alex Baudin | EF Education-EasyPost | 1:07 |
| 14 | Tobias Foss | Netcompany INEOS Cycling Team | 1:21 |
| 15 | Mathieu van der Poel | Alpecin-Premier Tech | 1:26 |
| 16 | Mattias Skjelmose | Lidl-Trek | 1:36 |
| 17 | Davide Piganzoli | Team Visma | Lease a Bike | 1:38 |
| 18 | Lennert Van Eetvelt | Lotto-Intermarché | 1:39 |
| 19 | Richard Carapaz | EF Education-EasyPost | 1:43 |
| 20 | Thymen Arensman | Netcompany INEOS Cycling Team | 1:48 |
| 21 | Jordan Jegat | Team TotalEnergies | 2:12 |
| 22 | Cian Uijtdebroeks | Movistar Team | 2:20 |
| 23 | Yannis Voisard | Tudor Pro Cycling Team | 2:24 |
| 24 | Ion Izagirre | Cofidis | 2:28 |
| 25 | José Félix Parra | Caja Rural-Seguros RGA | 2:32 |
| 26 | Sergio Higuita | XDS Astana Team | 3:01 |
| 27 | Abel Balderstone | Caja Rural-Seguros RGA | 3:10 |
| 28 | Torstein Træen | Uno-X Mobility | 3:24 |
| 29 | Harold Tejada | XDS Astana Team | 3:37 |
| 30 | Sean Quinn | EF Education-EasyPost | 3:47 |
| 31 | Egan Bernal | Netcompany INEOS Cycling Team | 3:53 |
| 32 | Javier Romo | Movistar Team | 4:04 |
| 33 | Jai Hindley | Red Bull-BORA-hansgrohe | 4:19 |
| 34 | Alex Aranburu | Cofidis | 4:43 |
| 35 | Adam Yates | UAE Team Emirates-XRG | 5:06 |
| 36 | Tiesj Benoot | Decathlon CMA CGM Team | 5:14 |
| 37 | Joris Delbove | Team TotalEnergies | 6:10 |
| 38 | Mathias Vacek | Lidl-Trek | 6:14 |
| 39 | Matthew Riccitello | Decathlon CMA CGM Team | 6:21 |
| 40 | Antonio Tiberi | Bahrain Victorious | 6:31 |
| 41 | George Bennett | NSN Cycling Team | 6:47 |
| 42 | Brandon McNulty | UAE Team Emirates-XRG | 7:28 |
| 43 | Luke Plapp | Team Jayco-AlUla | 7:28 |
| 44 | Derek Gee-West | Lidl-Trek | 7:34 |
| 45 | Kévin Vauquelin | Netcompany INEOS Cycling Team | 8:06 |
| 46 | Matteo Jorgenson | Team Visma | Lease a Bike | 8:33 |
| 47 | Quinten Hermans | Pinarello-Q36.5 Pro Cycling Team | 8:40 |
| 48 | Sepp Kuss | Team Visma | Lease a Bike | 8:50 |
| 49 | Guillaume Martin-Guyonnet | Groupama-FDJ United | 9:05 |
| 50 | Clément Braz Afonso | Groupama-FDJ United | 9:45 |
| 51 | Ben O'Connor | Team Jayco-AlUla | 10:04 |
| 52 | Bruno Armirail | Team Visma | Lease a Bike | 10:20 |
| 53 | Anders Halland Johannessen | Uno-X Mobility | 10:42 |
| 54 | Mauro Schmid | Team Jayco-AlUla | 10:56 |
| 55 | Georg Steinhauser | EF Education-EasyPost | 10:58 |
| 56 | Robbe Dhondt | Team Picnic PostNL | 11:23 |
| 57 | Emiel Verstrynge | Alpecin-Premier Tech | 11:39 |
| 58 | Marc Hirschi | Tudor Pro Cycling Team | 11:53 |
| 59 | Ramses Debruyne | Alpecin-Premier Tech | 12:20 |
| 60 | Raúl García | Movistar Team | 12:24 |
| 61 | Julian Alaphilippe | Tudor Pro Cycling Team | 12:31 |
| 62 | Anders Skaarseth | Uno-X Mobility | 12:39 |
| 63 | Michael Matthews | Team Jayco-AlUla | 12:48 |
| 64 | Louis Vervaeke | Soudal Quick-Step | 12:56 |
| 65 | Sebastian Berwick | Caja Rural-Seguros RGA | 13:06 |
| 66 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 13:10 |
| 67 | Dylan van Baarle | Soudal Quick-Step | 13:12 |
| 68 | Rick Pluimers | Tudor Pro Cycling Team | 13:13 |
| 69 | Joshua Tarling | Netcompany INEOS Cycling Team | 13:20 |
| 70 | Nicolas Prodhomme | Decathlon CMA CGM Team | 13:29 |
| 71 | Georg Zimmermann | Lotto-Intermarché | 13:34 |
| 72 | Lars Craps | Lotto-Intermarché | 13:36 |
| 73 | Quentin Pacher | Groupama-FDJ United | 13:42 |
| 74 | Nelson Oliveira | Movistar Team | s.t. |
| 75 | Mattéo Vercher | Team TotalEnergies | 13:43 |
| 76 | Nicolas Breuillard | Team TotalEnergies | s.t. |
| 77 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | 13:49 |
| 78 | Pascal Eenkhoorn | Soudal Quick-Step | 13:54 |
| 79 | Michal Kwiatkowski | Netcompany INEOS Cycling Team | 14:06 |
| 80 | Aurélien Paret-Peintre | Decathlon CMA CGM Team | 14:10 |
| 81 | Mathis Le Berre | Team TotalEnergies | 14:14 |
| 82 | Damiano Caruso | Bahrain Victorious | 14:18 |
| 83 | Marco Frigo | NSN Cycling Team | 14:20 |
| 84 | Lorenzo Germani | Groupama-FDJ United | 14:21 |
| 85 | Ewen Costiou | Groupama-FDJ United | s.t. |
| 86 | Benjamin Thomas | Cofidis | s.t. |
| 87 | Jenno Berckmoes | Lotto-Intermarché | 14:26 |
| 88 | Xandro Meurisse | Pinarello-Q36.5 Pro Cycling Team | 14:36 |
| 89 | Alexandre Delettre | Team TotalEnergies | 14:47 |
| 90 | Filippo Ganna | Netcompany INEOS Cycling Team | 14:51 |
| 91 | Michel Hessmann | Movistar Team | 14:52 |
| 92 | Valentin Paret-Peintre | Soudal Quick-Step | 14:54 |
| 93 | Felix Grossschartner | UAE Team Emirates-XRG | 15:02 |
| 94 | Alex Molenaar | Caja Rural-Seguros RGA | 15:08 |
| 95 | Tim Wellens | UAE Team Emirates-XRG | 15:10 |
| 96 | Mattia Cattaneo | Red Bull-BORA-hansgrohe | 15:12 |
| 97 | Kasper Asgreen | EF Education-EasyPost | 15:19 |
| 98 | Robert Stannard | Bahrain Victorious | 15:21 |
| 99 | Clément Russo | Groupama-FDJ United | 15:23 |
| 100 | Niklas Märkl | Team Picnic PostNL | 15:24 |
| 101 | Jefferson Cepeda | Movistar Team | s.t. |
| 102 | Pablo Castrillo | Movistar Team | s.t. |
| 103 | Ben Healy | EF Education-EasyPost | 15:27 |
| 104 | Joel Nicolau | Caja Rural-Seguros RGA | 15:29 |
| 105 | Victor Campenaerts | Team Visma | Lease a Bike | 15:36 |
| 106 | Dorian Godon | Netcompany INEOS Cycling Team | 15:43 |
| 107 | Lewis Askey | NSN Cycling Team | 15:44 |
| 108 | Mike Teunissen | XDS Astana Team | 15:52 |
| 109 | Luke Durbridge | Team Jayco-AlUla | 15:57 |
| 110 | Thibault Guernalec | Team TotalEnergies | 15:58 |
| 111 | Max Walker | EF Education-EasyPost | 15:59 |
| 112 | Jasper Stuyven | Soudal Quick-Step | 16:19 |
| 113 | Frank van den Broek | Team Picnic PostNL | 16:29 |
| 114 | Carlos Verona | Lidl-Trek | 16:30 |
| 115 | Alex Kirsch | Cofidis | 16:34 |
| 116 | Warren Barguil | Team Picnic PostNL | 16:38 |
| 117 | John Degenkolb | Team Picnic PostNL | s.t. |
| 118 | Frits Biesterbos | Team Picnic PostNL | s.t. |
| 119 | Pavel Bittner | Team Picnic PostNL | s.t. |
| 120 | Tim Marsman | Alpecin-Premier Tech | 16:43 |
| 121 | Max Kanter | XDS Astana Team | s.t. |
| 122 | Aaron Gate | XDS Astana Team | 16:45 |
| 123 | Edward Planckaert | Alpecin-Premier Tech | s.t. |
| 124 | Anthon Charmig | Uno-X Mobility | s.t. |
| 125 | Tom Van Asbroeck | NSN Cycling Team | 16:47 |
| 126 | Krists Neilands | NSN Cycling Team | s.t. |
| 127 | Damien Howson | Pinarello-Q36.5 Pro Cycling Team | 16:54 |
| 128 | Einer Rubio | Movistar Team | 16:58 |
| 129 | Michael Storer | Tudor Pro Cycling Team | 17:00 |
| 130 | Florian Vermeersch | UAE Team Emirates-XRG | 17:01 |
| 131 | Julius van den Berg | Team Picnic PostNL | s.t. |
| 132 | Xabier Azparren | Pinarello-Q36.5 Pro Cycling Team | 17:03 |
| 133 | Biniam Girmay | NSN Cycling Team | 17:06 |
| 134 | Stefano Oldani | Caja Rural-Seguros RGA | 17:11 |
| 135 | Jonas Rickaert | Alpecin-Premier Tech | 17:16 |
| 136 | Michael Valgren | EF Education-EasyPost | 17:24 |
| 137 | Jonas Abrahamsen | Uno-X Mobility | 17:28 |
| 138 | Matis Louvel | NSN Cycling Team | 17:28 |
| 139 | Jake Stewart | NSN Cycling Team | 17:32 |
| 140 | Vlad Van Mechelen | Bahrain Victorious | 17:33 |
| 141 | Anthony Turgis | Team TotalEnergies | 17:36 |
| 142 | Fernando Gaviria | Caja Rural-Seguros RGA | 17:38 |
| 143 | Arvid de Kleijn | Tudor Pro Cycling Team | 17:41 |
| 144 | Fred Wright | Pinarello-Q36.5 Pro Cycling Team | 17:42 |
| 145 | Hugo Page | Cofidis | 17:43 |
| 146 | Jenthe Biermans | Cofidis | s.t. |
| 147 | Jakub Otruba | Caja Rural-Seguros RGA | 17:45 |
| 148 | Daan Hoole | Decathlon CMA CGM Team | s.t. |
| 149 | Magnus Cort | Uno-X Mobility | 17:47 |
| 150 | Toms Skujins | Lidl-Trek | 17:49 |
| 151 | Matej Mohoric | Bahrain Victorious | 17:52 |
| 152 | Nils Politt | UAE Team Emirates-XRG | 18:00 |
| 153 | Brent Van Moer | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 154 | Jan Tratnik | Red Bull-BORA-hansgrohe | 18:02 |
| 155 | Felix Engelhardt | Team Jayco-AlUla | 18:06 |
| 156 | Milan Fretin | Cofidis | 18:18 |
| 157 | Mads Pedersen | Lidl-Trek | s.t. |
| 158 | Quinn Simmons | Lidl-Trek | 18:19 |
| 159 | Tim Merlier | Soudal Quick-Step | 18:22 |
| 160 | Nicolas Vinokurov | XDS Astana Team | 18:27 |
| 161 | Phil Bauhaus | Bahrain Victorious | 18:33 |
| 162 | Kamil Gradek | Bahrain Victorious | s.t. |
| 163 | Silvan Dillier | Alpecin-Premier Tech | 18:40 |
| 164 | Jasper Philipsen | Alpecin-Premier Tech | s.t. |
| 165 | Nico Denz | Red Bull-BORA-hansgrohe | 18:46 |
| 166 | Pascal Ackermann | Team Jayco-AlUla | 18:47 |
| 167 | Tim van Dijke | Red Bull-BORA-hansgrohe | 18:50 |
| 168 | Huub Artz | Lotto-Intermarché | 18:58 |
| 169 | Søren Wærenskjold | Uno-X Mobility | 19:21 |
| 170 | Per Strand Hagenes | Team Visma | Lease a Bike | 19:25 |
| 171 | Piet Allegaert | Cofidis | 19:29 |
| 172 | Bert Van Lerberghe | Soudal Quick-Step | 19:40 |
| 173 | Simone Velasco | XDS Astana Team | 19:54 |
| 174 | Davide Ballerini | XDS Astana Team | 20:30 |
| 175 | Matteo Trentin | Tudor Pro Cycling Team | 20:35 |
| 176 | Liam Slock | Lotto-Intermarché | 20:41 |
| 177 | Edoardo Affini | Team Visma | Lease a Bike | 21:10 |
| 178 | Marco Haller | Tudor Pro Cycling Team | 21:14 |
| 179 | Olav Kooij | Decathlon CMA CGM Team | 22:20 |
| 180 | Kelland O'Brien | Team Jayco-AlUla | 22:22 |
| 181 | Baptiste Veistroffer | Lotto-Intermarché | 22:33 |
| 182 | Arnaud De Lie | Lotto-Intermarché | 22:34 |
| 183 | Cees Bol | Decathlon CMA CGM Team | 22:39 |
Stage 2 map & profile:

Stage 2 map

Stage 2 profile
Stage two photos by Fotoreporter Sirotti:

GC leader Jonas Vingegaard at the pre-race riders presentation ceremony. Note the careful Vingegaard has a mask

Tadej Pogacar in the King of the Mountains jersey before the stage start.

Ben Healy heads to the start.

Mathieu van der Poel

Fernando Gaviria

Stage two gets rolling.

Tadej Pogar, Isaac del Toro and Remco Evenepoel approach the finish line.

Isaac del Toro appears to be rather pleased with winning the stage.

Tadej Pogacar and Isaac del Toro just after the stage.

Stage winner Isaac del Toro in the Best Young Rider's white jersey.

Jonas Vingegaard will start stage three in the GC leader's yellow jersey.