
Monday, July 6: Stage 3, Granollers - Les Angles, 195.9 km
Stage 3 map & profile | Stage 3 photos

Tadej Pogacar wins stage three and becomes the new GC leader.
Plato's dialogue Phaedo is available in both audiobook & Kindle eBook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Les Angles at 2:15 PM, local time: 26C (79F), sunny, with the wind from the north at 16 km/hr (10 mph). No rain is forecast.
Rated ascents:
The stage: Tour boss Christian Prudhomme writes: Entering the Pyrenees on just the third day of racing is likely to bring new protagonists to the fore, although this stage’s profile is more likely to trigger an attack by a group of strong breakaway riders rather than encouraging the world’s best climbers onto the offensive. Despite 3,850 meters of vertical gain that include the climb up the Col de Toses before the riders leave Spain, the plateaux surrounding Font-Romeu and the climb to Les Angles (1.7km at an average gradient of 7%) are more likely to provide a springboard for a surprise guest.
The race: The Tour posted this notice: The exceptionally large wildfire currently raging in the Pyrénées-Orientales is requiring a massive mobilization of wildfire-fighting resources, internal security forces, and all government agencies. The top priority remains the protection of people, property, and natural areas, as well as bringing the fire under control.
In light of this, Pierre Regnault de la Mothe, Prefect of the Pyrénées-Orientales, and Christian Prudhomme, Director of the Tour de France, have decided to adjust the conditions for the French portion of stage 3.
Notably, the caravan will not pass on the race route and the event will be limited to the passage of only the riders and vehicles essential to the organization of the race.
The Tour de France will thus take place in an exceptional format, based on autonomous organization and a significantly scaled-back operation, consistent with the operational constraints imposed by the situation.
Here's the race organizer's stage three report:
After gifting stage 2 to his lieutenant Isaac del Toro, Tadej Pogacar asserted his authority on day 3 of the Tour de France 2026. UAE Emirates XRG’s Slovenian leader mastered the altitude finish at Les Angles to take his 22nd stage win in the event, his first this year. He also opened a 2-second gap to Jonas Vingegaard (Visma-Lease a Bike). The two stars are level on time in the overall standings, but Pogacar is the new leader thanks to a better combined stage placings in the opening stages. Richard Carapaz (EF Education-EasyPost) completed the stage podium ahead of Paul Seixas (Decathlon CMA CGM). Pogacar’s 22nd stage victory sees him equal the fifth-highest total in Tour history, held by André Darrigade.

A selfie taken on the startline. It's about time to go race bikes.
After a couple of days entirely held in Catalonia and focused on Montjuïc, the peloton bid farewell to the Spanish Grand Départ and head to France with a 195.9-km cross-border stage 3. The road rises as the race enters the Pyrenees and rises above 1,500 metres of altitude. The total elevation gain for the day is an impressive 3,850 metres to reach Les Angles (1,794m above sea level).
The race:
The 183-rider peloton set off from Granollers just after noon. The Sun is out. And the attackers are inspired. As soon as the flag drops, Alex Molenaar (Caja Rural-Seguros RGA) sets off to try to defend his polka-dot jersey. His move is rapidly nullified as there are numerous contenders for the breakaway, including big names such as Egan Bernal (Netcompany Ineos) and Matteo Jorgenson (Visma-Lease a Bike).

The peloton with GC leader Jonas Vingegaard heads north towards France. ASO photo
Bernal left behind by an 18-man break
Valentin Paret-Peintre (Soudal Quick-Step) leads the way to the first summit of the day, up Côte de Saint Felix de Codines (cat. 3, km 17.2). But the battle continues at an intense pace.
Louis Vervaeke (Soudal Quick-Step), Magnus Cort (Uno-X Mobility), Nelson Oliveira (Movistar), and Matteo Vercher (Total Energies) manage to open a gap at km 58. Counter-attackers react and bridge the gap in successive waves, until a group of 18 riders is consolidated at km 72 with Mads Pedersen (Lidl-Trek), Alex Baudin (EF Education-EasyPost), Nicolas Prodhomme (Decathlon CMA CGM), Harold Tejada (XDS Astana), Vlad Van Mechelen (Bahrain Victorious), Luke Plapp, Mauro Schmid (Jayco AlUla), George Bennett (NSN), Raul Garcia Pierna (Movistar), Alex Aranburu (Cofidis), Clément Braz Afonso (Groupama-FDJ), Michael Storer (Tudor), Joris Delbove (Total Energies), Abel Balderstone (Caja Rural-Seguros RGA).
Egan Bernal was about to make the break when he suffered a mechanical that took him out of contention.
The road rises
Trailing by 1’07’’ in GC, Baudin is the main threat to the Maillot Jaune. The gap hits a maximum of 3’05’’ at km 96. At that point, the race enters the final 100 kilometres and UAE Emirates-XRG take over the pace-setting from Visma-Lease a Bike. The gap is down to 1’30’’ as Pedersen dominates the intermediate sprint in Campdevanol (km 98.4).
Soon after, the road rises to head to the Col de Toses, the first cat. 1 ascent of the Tour de France 2026. Garcia Pierna attacks at the bottom. He’s joined by Van Mechelen, then Vercher, and eventually Baudin, Prodhomme, and Bennett. Baudin leads the way to the summit while UAE Emirates-XRG control the gap.
With 45 kilometres to go, the race crosses the border and enters France after around 340 kilometres on Catalan roads.

Peloton and crowds on the first-category Col de Toses. Photo: ASO/Charly Lopez
UAE control, Pogacar concludes
Baudin attacks at the bottom of the climb to Col du Calvaire (11.4 km at 4.1%). Only Prodhomme can keep up. Baudin takes the KOM points at the summit again and all but secures the polka-dot jersey. Shortly after the summit, he goes solo. Last month, he covered the last 28 kilometres of stage 1 of the Tour Auvergne-Rhône-Alpes on this own to take victory. But the peloton only trail 35 seconds as he enters the last 20 kilometres. Baudin is eventually reeled in with 11.5 kilometres to go.
UAE Emirates-XRG control the finale and Isaac del Toro ups the ante into the last kilometre. Pogacar opens up his sprint with 200 metres to go. On his wheel, Jonas Vingegaard is immediately distanced. He crosses the line in second position, with a gap of 2 seconds, just ahead of Richard Carapaz (EF Education-EasyPost) and Paul Seixas (Decathlon CMA CGM).
The gap on the line and the time bonuses mean Pogacar and Vingegaard are level on time. The Slovenian leads the standings thanks to a lower tally when adding up the positions in which they finished each stage.
Complete results:
195.9 kilometers raced at an average speed of 41.216 km/hr
| 1 | Tadej Pogacar | UAE Team Emirates-XRG | 4hr 45min 11sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 2sec |
| 3 | Richard Carapaz | EF Education-EasyPost | s.t. |
| 4 | Paul Seixas | Decathlon CMA CGM Team | s.t. |
| 5 | Tobias Halland Johannessen | Uno-X Mobility | 0:04 |
| 6 | Lennert Van Eetvelt | Lotto-Intermarché | s.t. |
| 7 | Florian Lipowitz | Red Bull-BORA-hansgrohe | s.t. |
| 8 | Remco Evenepoel | Red Bull-BORA-hansgrohe | s.t. |
| 9 | Isaac del Toro | UAE Team Emirates-XRG | s.t. |
| 10 | Juan Ayuso | Lidl-Trek | s.t. |
| 11 | Mattias Skjelmose | Lidl-Trek | 0:10 |
| 12 | Ilan Van Wilder | Soudal Quick-Step | 0:12 |
| 13 | Lenny Martinez | Bahrain Victorious | s.t. |
| 14 | Jordan Jegat | Team TotalEnergies | s.t. |
| 15 | Sergio Higuita | XDS Astana Team | 0:18 |
| 16 | Tom Pidcock | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 17 | Egan Bernal | Netcompany INEOS Cycling Team | s.t. |
| 18 | Tiesj Benoot | Decathlon CMA CGM Team | 0:27 |
| 19 | Thymen Arensman | Netcompany INEOS Cycling Team | s.t. |
| 20 | Davide Piganzoli | Team Visma | Lease a Bike | 0:33 |
| 21 | Antonio Tiberi | Bahrain Victorious | 0:42 |
| 22 | Ramses Debruyne | Alpecin-Premier Tech | 0:48 |
| 23 | Adam Yates | UAE Team Emirates-XRG | 0:50 |
| 24 | Sepp Kuss | Team Visma | Lease a Bike | s.t. |
| 25 | Harold Tejada | XDS Astana Team | 0:57 |
| 26 | Pablo Castrillo | Movistar Team | 1:00 |
| 27 | Cian Uijtdebroeks | Movistar Team | s.t. |
| 28 | Guillaume Martin-Guyonnet | Groupama-FDJ United | 1:06 |
| 29 | Yannis Voisard | Tudor Pro Cycling Team | 1:22 |
| 30 | Torstein Træen | Uno-X Mobility | 1:38 |
| 31 | Jai Hindley | Red Bull-BORA-hansgrohe | s.t. |
| 32 | Sean Quinn | EF Education-EasyPost | 1:43 |
| 33 | José Félix Parra | Caja Rural-Seguros RGA | 1:45 |
| 34 | Aurélien Paret-Peintre | Decathlon CMA CGM Team | 2:14 |
| 35 | Brandon McNulty | UAE Team Emirates-XRG | 2:23 |
| 36 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 2:33 |
| 37 | Nicolas Prodhomme | Decathlon CMA CGM Team | s.t. |
| 38 | Mathias Vacek | Lidl-Trek | 2:38 |
| 39 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | 2:41 |
| 40 | Matteo Jorgenson | Team Visma | Lease a Bike | 2:42 |
| 41 | Quinn Simmons | Lidl-Trek | 2:49 |
| 42 | Valentin Paret-Peintre | Soudal Quick-Step | 3:00 |
| 43 | Nicolas Breuillard | Team TotalEnergies | 3:13 |
| 44 | Carlos Verona | Lidl-Trek | 3:27 |
| 45 | Anders Skaarseth | Uno-X Mobility | s.t. |
| 46 | George Bennett | NSN Cycling Team | 4:02 |
| 47 | Alex Baudin | EF Education-EasyPost | 4:08 |
| 48 | Raúl García | Movistar Team | 4:16 |
| 49 | Felix Grossschartner | UAE Team Emirates-XRG | 5:02 |
| 50 | Mattéo Vercher | Team TotalEnergies | 7:36 |
| 51 | Kasper Asgreen | EF Education-EasyPost | 13:35 |
| 52 | Nelson Oliveira | Movistar Team | s.t. |
| 53 | Abel Balderstone | Caja Rural-Seguros RGA | s.t. |
| 54 | Einer Rubio | Movistar Team | s.t. |
| 55 | Ion Izagirre | Cofidis | s.t. |
| 56 | Marc Hirschi | Tudor Pro Cycling Team | s.t. |
| 57 | Kévin Vauquelin | Netcompany INEOS Cycling Team | s.t. |
| 58 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 59 | Lorenzo Germani | Groupama-FDJ United | s.t. |
| 60 | Mattia Cattaneo | Red Bull-BORA-hansgrohe | s.t. |
| 61 | Damiano Caruso | Bahrain Victorious | s.t. |
| 62 | Victor Campenaerts | Team Visma | Lease a Bike | s.t. |
| 63 | Quinten Hermans | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 64 | Xandro Meurisse | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 65 | Toms Skujins | Lidl-Trek | s.t. |
| 66 | Clément Braz Afonso | Groupama-FDJ United | s.t. |
| 67 | Derek Gee-West | Lidl-Trek | s.t. |
| 68 | Vlad Van Mechelen | Bahrain Victorious | 13:54 |
| 69 | Simone Velasco | XDS Astana Team | 16:18 |
| 70 | Magnus Cort | Uno-X Mobility | 17:38 |
| 71 | Nils Politt | UAE Team Emirates-XRG | 19:52 |
| 72 | Michael Matthews | Team Jayco-AlUla | 19:57 |
| 73 | Jonas Abrahamsen | Uno-X Mobility | s.t. |
| 74 | Tim Wellens | UAE Team Emirates-XRG | 20:18 |
| 75 | Romain Grégoire | Groupama-FDJ United | s.t. |
| 76 | Pascal Eenkhoorn | Soudal Quick-Step | s.t. |
| 77 | Jefferson Cepeda | Movistar Team | s.t. |
| 78 | Javier Romo | Movistar Team | s.t. |
| 79 | Mathis Le Berre | Team TotalEnergies | s.t. |
| 80 | Georg Zimmermann | Lotto-Intermarché | s.t. |
| 81 | Ben O'Connor | Team Jayco-AlUla | 20:22 |
| 82 | Stefano Oldani | Caja Rural-Seguros RGA | 20:32 |
| 83 | Sebastian Berwick | Caja Rural-Seguros RGA | s.t. |
| 84 | Jakub Otruba | Caja Rural-Seguros RGA | s.t. |
| 85 | Alexandre Delettre | Team TotalEnergies | 20:41 |
| 86 | Joris Delbove | Team TotalEnergies | s.t. |
| 87 | Dylan van Baarle | Soudal Quick-Step | s.t. |
| 88 | Jasper Stuyven | Soudal Quick-Step | 20:51 |
| 89 | Ben Healy | EF Education-EasyPost | 21:00 |
| 90 | Mauro Schmid | Team Jayco-AlUla | 21:28 |
| 91 | Silvan Dillier | Alpecin-Premier Tech | 22:59 |
| 92 | Felix Engelhardt | Team Jayco-AlUla | s.t. |
| 93 | Mike Teunissen | XDS Astana Team | s.t. |
| 94 | Clément Russo | Groupama-FDJ United | s.t. |
| 95 | Quentin Pacher | Groupama-FDJ United | s.t. |
| 96 | Rick Pluimers | Tudor Pro Cycling Team | s.t. |
| 97 | Jenno Berckmoes | Lotto-Intermarché | s.t. |
| 98 | Anthon Charmig | Uno-X Mobility | s.t. |
| 99 | Damien Howson | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 100 | Robert Stannard | Bahrain Victorious | s.t. |
| 101 | Aaron Gate | XDS Astana Team | s.t. |
| 102 | Luke Durbridge | Team Jayco-AlUla | s.t. |
| 103 | Louis Vervaeke | Soudal Quick-Step | s.t. |
| 104 | Emiel Verstrynge | Alpecin-Premier Tech | s.t. |
| 105 | Nico Denz | Red Bull-BORA-hansgrohe | s.t. |
| 106 | Matej Mohoric | Bahrain Victorious | s.t. |
| 107 | Ewen Costiou | Groupama-FDJ United | 23:10 |
| 108 | Georg Steinhauser | EF Education-EasyPost | 23:20 |
| 109 | Thibault Guernalec | Team TotalEnergies | s.t. |
| 110 | Jonas Rickaert | Alpecin-Premier Tech | 23:24 |
| 111 | Alex Aranburu | Cofidis | 23:29 |
| 112 | Michael Valgren | EF Education-EasyPost | s.t. |
| 113 | Marco Frigo | NSN Cycling Team | 23:36 |
| 114 | Warren Barguil | Team Picnic PostNL | s.t. |
| 115 | Anthony Turgis | Team TotalEnergies | 23:40 |
| 116 | Frank van den Broek | Team Picnic PostNL | 23:46 |
| 117 | Brent Van Moer | Pinarello-Q36.5 Pro Cycling Team | 23:52 |
| 118 | Lars Craps | Lotto-Intermarché | s.t. |
| 119 | Max Walker | EF Education-EasyPost | s.t. |
| 120 | Krists Neilands | NSN Cycling Team | s.t. |
| 121 | Luke Plapp | Team Jayco-AlUla | 23:57 |
| 122 | Benjamin Thomas | Cofidis | 24:13 |
| 123 | Jan Tratnik | Red Bull-BORA-hansgrohe | s.t. |
| 124 | Edward Planckaert | Alpecin-Premier Tech | 24:17 |
| 125 | Mathieu van der Poel | Alpecin-Premier Tech | s.t. |
| 126 | Jasper Philipsen | Alpecin-Premier Tech | s.t. |
| 127 | Xabier Azparren | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 128 | Daan Hoole | Decathlon CMA CGM Team | 24:28 |
| 129 | Mads Pedersen | Lidl-Trek | s.t. |
| 130 | Michel Hessmann | Movistar Team | s.t. |
| 131 | Joel Nicolau | Caja Rural-Seguros RGA | s.t. |
| 132 | Biniam Girmay | NSN Cycling Team | 24:30 |
| 133 | Max Kanter | XDS Astana Team | 24:40 |
| 134 | Matteo Trentin | Tudor Pro Cycling Team | 24:49 |
| 135 | Florian Vermeersch | UAE Team Emirates-XRG | 25:22 |
| 136 | Søren Wærenskjold | Uno-X Mobility | 26:11 |
| 137 | Nicolas Vinokurov | XDS Astana Team | 27:00 |
| 138 | Alex Kirsch | Cofidis | 31:14 |
| 139 | Baptiste Veistroffer | Lotto-Intermarché | 36:27 |
| 140 | Matis Louvel | NSN Cycling Team | s.t. |
| 141 | Julian Alaphilippe | Tudor Pro Cycling Team | s.t. |
| 142 | Tom Van Asbroeck | NSN Cycling Team | s.t. |
| 143 | Alex Molenaar | Caja Rural-Seguros RGA | s.t. |
| 144 | John Degenkolb | Team Picnic PostNL | 36:30 |
| 145 | Matthew Riccitello | Decathlon CMA CGM Team | s.t. |
| 146 | Milan Fretin | Cofidis | s.t. |
| 147 | Jenthe Biermans | Cofidis | s.t. |
| 148 | Pavel Bittner | Team Picnic PostNL | s.t. |
| 149 | Niklas Märkl | Team Picnic PostNL | s.t. |
| 150 | Phil Bauhaus | Bahrain Victorious | s.t. |
| 151 | Pascal Ackermann | Team Jayco-AlUla | s.t. |
| 152 | Tim van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 153 | Kamil Gradek | Bahrain Victorious | s.t. |
| 154 | Tim Marsman | Alpecin-Premier Tech | s.t. |
| 155 | Bert Van Lerberghe | Soudal Quick-Step | s.t. |
| 156 | Tim Merlier | Soudal Quick-Step | s.t. |
| 157 | Julius van den Berg | Team Picnic PostNL | s.t. |
| 158 | Jake Stewart | NSN Cycling Team | s.t. |
| 159 | Olav Kooij | Decathlon CMA CGM Team | s.t. |
| 160 | Frits Biesterbos | Team Picnic PostNL | s.t. |
| 161 | Fernando Gaviria | Caja Rural-Seguros RGA | s.t. |
| 162 | Cees Bol | Decathlon CMA CGM Team | s.t. |
| 163 | Edoardo Affini | Team Visma | Lease a Bike | s.t. |
| 164 | Piet Allegaert | Cofidis | s.t. |
| 165 | Per Strand Hagenes | Team Visma | Lease a Bike | s.t. |
| 166 | Michal Kwiatkowski | Netcompany INEOS Cycling Team | s.t. |
| 167 | Huub Artz | Lotto-Intermarché | s.t. |
| 168 | Anders Halland Johannessen | Uno-X Mobility | s.t. |
| 169 | Bruno Armirail | Team Visma | Lease a Bike | s.t. |
| 170 | Lewis Askey | NSN Cycling Team | s.t. |
| 171 | Tobias Foss | Netcompany INEOS Cycling Team | s.t. |
| 172 | Dorian Godon | Netcompany INEOS Cycling Team | s.t. |
| 173 | Hugo Page | Cofidis | s.t. |
| 174 | Liam Slock | Lotto-Intermarché | 36:42 |
| 175 | Davide Ballerini | XDS Astana Team | 37:40 |
| 176 | Fred Wright | Pinarello-Q36.5 Pro Cycling Team | 37:41 |
| 177 | Robbe Dhondt | Team Picnic PostNL | 38:07 |
| 178 | Joshua Tarling | Netcompany INEOS Cycling Team | 38:10 |
| 179 | Filippo Ganna | Netcompany INEOS Cycling Team | s.t. |
| 180 | Marco Haller | Tudor Pro Cycling Team | 38:12 |
| 181 | Kelland O'Brien | Team Jayco-AlUla | 38:31 |
| 182 | Arvid de Kleijn | Tudor Pro Cycling Team | 41:16 |
| DNF | Arnaud De Lie | Lotto-Intermarché |
GC after stage 3:
384 kilometers raced so far at an average speed of 43.726 km/hr
| 1 | Tadej Pogacar | UAE Team Emirates-XRG | 8hr 46min 55sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | s.t. |
| 3 | Remco Evenepoel | Red Bull-BORA-hansgrohe | @ 23sec |
| 4 | Isaac del Toro | UAE Team Emirates-XRG | 0:24 |
| 5 | Juan Ayuso | Lidl-Trek | 0:27 |
| 6 | Paul Seixas | Decathlon CMA CGM Team | 0:48 |
| 7 | Florian Lipowitz | Red Bull-BORA-hansgrohe | 0:53 |
| 8 | Lenny Martinez | Bahrain Victorious | 1:09 |
| 9 | Tobias Halland Johannessen | Uno-X Mobility | 1:11 |
| 10 | Ilan Van Wilder | Soudal Quick-Step | 1:17 |
| 11 | Tom Pidcock | Pinarello-Q36.5 Pro Cycling Team | 1:22 |
| 12 | Richard Carapaz | EF Education-EasyPost | 1:45 |
| 13 | Lennert Van Eetvelt | Lotto-Intermarché | 1:47 |
| 14 | Mattias Skjelmose | Lidl-Trek | 1:50 |
| 15 | Davide Piganzoli | Team Visma | Lease a Bike | 2:15 |
| 16 | Thymen Arensman | Netcompany INEOS Cycling Team | 2:19 |
| 17 | Jordan Jegat | Team TotalEnergies | 2:28 |
| 18 | Sergio Higuita | XDS Astana Team | 3:23 |
| 19 | Cian Uijtdebroeks | Movistar Team | 3:24 |
| 20 | Yannis Voisard | Tudor Pro Cycling Team | 3:50 |
| 21 | Egan Bernal | Netcompany INEOS Cycling Team | 4:15 |
| 22 | José Félix Parra | Caja Rural-Seguros RGA | 4:21 |
| 23 | Harold Tejada | XDS Astana Team | 4:38 |
| 24 | Torstein Træen | Uno-X Mobility | 5:06 |
| 25 | Alex Baudin | EF Education-EasyPost | 5:19 |
| 26 | Sean Quinn | EF Education-EasyPost | 5:34 |
| 27 | Tiesj Benoot | Decathlon CMA CGM Team | 5:45 |
| 28 | Adam Yates | UAE Team Emirates-XRG | 6:00 |
| 29 | Jai Hindley | Red Bull-BORA-hansgrohe | 6:01 |
| 30 | Antonio Tiberi | Bahrain Victorious | 7:17 |
| 31 | Mathias Vacek | Lidl-Trek | 8:56 |
| 32 | Sepp Kuss | Team Visma | Lease a Bike | 9:44 |
| 33 | Brandon McNulty | UAE Team Emirates-XRG | 9:55 |
| 34 | Guillaume Martin-Guyonnet | Groupama-FDJ United | 10:15 |
| 35 | George Bennett | NSN Cycling Team | 10:53 |
| 36 | Matteo Jorgenson | Team Visma | Lease a Bike | 11:19 |
| 37 | Ramses Debruyne | Alpecin-Premier Tech | 13:12 |
| 38 | Maxim Van Gils | Red Bull-BORA-hansgrohe | 15:47 |
| 39 | Nicolas Prodhomme | Decathlon CMA CGM Team | 16:06 |
| 40 | Ion Izagirre | Cofidis | 16:07 |
| 41 | Anders Skaarseth | Uno-X Mobility | 16:10 |
| 42 | Aurélien Paret-Peintre | Decathlon CMA CGM Team | 16:28 |
| 43 | Pablo Castrillo | Movistar Team | s.t. |
| 44 | Chris Harper | Pinarello-Q36.5 Pro Cycling Team | 16:34 |
| 45 | Raúl García | Movistar Team | 16:44 |
| 46 | Abel Balderstone | Caja Rural-Seguros RGA | 16:49 |
| 47 | Nicolas Breuillard | Team TotalEnergies | 17:00 |
| 48 | Valentin Paret-Peintre | Soudal Quick-Step | 17:58 |
| 49 | Carlos Verona | Lidl-Trek | 20:01 |
| 50 | Felix Grossschartner | UAE Team Emirates-XRG | 20:08 |
| 51 | Romain Grégoire | Groupama-FDJ United | 21:06 |
| 52 | Quinn Simmons | Lidl-Trek | 21:12 |
| 53 | Derek Gee-West | Lidl-Trek | 21:13 |
| 54 | Mattéo Vercher | Team TotalEnergies | 21:23 |
| 55 | Kévin Vauquelin | Netcompany INEOS Cycling Team | 21:45 |
| 56 | Quinten Hermans | Pinarello-Q36.5 Pro Cycling Team | 22:19 |
| 57 | Clément Braz Afonso | Groupama-FDJ United | 23:24 |
| 58 | Javier Romo | Movistar Team | 24:26 |
| 59 | Marc Hirschi | Tudor Pro Cycling Team | 25:32 |
| 60 | Mathieu van der Poel | Alpecin-Premier Tech | 25:47 |
| 61 | Joris Delbove | Team TotalEnergies | 26:55 |
| 62 | Nelson Oliveira | Movistar Team | 27:21 |
| 63 | Damiano Caruso | Bahrain Victorious | 27:57 |
| 64 | Lorenzo Germani | Groupama-FDJ United | 28:00 |
| 65 | Xandro Meurisse | Pinarello-Q36.5 Pro Cycling Team | 28:15 |
| 66 | Alex Aranburu | Cofidis | 28:16 |
| 67 | Mattia Cattaneo | Red Bull-BORA-hansgrohe | 28:51 |
| 68 | Kasper Asgreen | EF Education-EasyPost | 28:58 |
| 69 | Victor Campenaerts | Team Visma | Lease a Bike | 29:15 |
| 70 | Ben O'Connor | Team Jayco-AlUla | 30:30 |
| 71 | Einer Rubio | Movistar Team | 30:37 |
| 72 | Michael Storer | Tudor Pro Cycling Team | 30:39 |
| 73 | Toms Skujins | Lidl-Trek | 31:28 |
| 74 | Luke Plapp | Team Jayco-AlUla | 31:29 |
| 75 | Vlad Van Mechelen | Bahrain Victorious | 31:31 |
| 76 | Mauro Schmid | Team Jayco-AlUla | 32:28 |
| 77 | Michael Matthews | Team Jayco-AlUla | 32:49 |
| 78 | Sebastian Berwick | Caja Rural-Seguros RGA | 33:42 |
| 79 | Georg Zimmermann | Lotto-Intermarché | 33:56 |
| 80 | Dylan van Baarle | Soudal Quick-Step | 33:57 |
| 81 | Pascal Eenkhoorn | Soudal Quick-Step | 34:16 |
| 82 | Georg Steinhauser | EF Education-EasyPost | 34:22 |
| 83 | Mathis Le Berre | Team TotalEnergies | 34:36 |
| 84 | Emiel Verstrynge | Alpecin-Premier Tech | 34:42 |
| 85 | Magnus Cort | Uno-X Mobility | 35:29 |
| 86 | Alexandre Delettre | Team TotalEnergies | 35:32 |
| 87 | Tim Wellens | UAE Team Emirates-XRG | s.t. |
| 88 | Jefferson Cepeda | Movistar Team | 35:46 |
| 89 | Louis Vervaeke | Soudal Quick-Step | 35:59 |
| 90 | Rick Pluimers | Tudor Pro Cycling Team | 36:16 |
| 91 | Simone Velasco | XDS Astana Team | s.t. |
| 92 | Ben Healy | EF Education-EasyPost | 36:31 |
| 93 | Quentin Pacher | Groupama-FDJ United | 36:45 |
| 94 | Jasper Stuyven | Soudal Quick-Step | 37:14 |
| 95 | Jonas Abrahamsen | Uno-X Mobility | 37:29 |
| 96 | Jenno Berckmoes | Lotto-Intermarché | s.t. |
| 97 | Lars Craps | Lotto-Intermarché | 37:32 |
| 98 | Ewen Costiou | Groupama-FDJ United | 37:35 |
| 99 | Stefano Oldani | Caja Rural-Seguros RGA | 37:47 |
| 100 | Tobias Foss | Netcompany INEOS Cycling Team | 37:55 |
| 101 | Nils Politt | UAE Team Emirates-XRG | 37:56 |
| 102 | Marco Frigo | NSN Cycling Team | 38:00 |
| 103 | Jakub Otruba | Caja Rural-Seguros RGA | 38:21 |
| 104 | Robert Stannard | Bahrain Victorious | 38:24 |
| 105 | Clément Russo | Groupama-FDJ United | 38:26 |
| 106 | Benjamin Thomas | Cofidis | 38:38 |
| 107 | Mike Teunissen | XDS Astana Team | 38:55 |
| 108 | Luke Durbridge | Team Jayco-AlUla | 39:00 |
| 109 | Thibault Guernalec | Team TotalEnergies | 39:22 |
| 110 | Michel Hessmann | Movistar Team | 39:24 |
| 111 | Aaron Gate | XDS Astana Team | 39:48 |
| 112 | Anthon Charmig | Uno-X Mobility | s.t. |
| 113 | Max Walker | EF Education-EasyPost | 39:55 |
| 114 | Damien Howson | Pinarello-Q36.5 Pro Cycling Team | 39:57 |
| 115 | Joel Nicolau | Caja Rural-Seguros RGA | 40:01 |
| 116 | Warren Barguil | Team Picnic PostNL | 40:18 |
| 117 | Frank van den Broek | Team Picnic PostNL | 40:19 |
| 118 | Krists Neilands | NSN Cycling Team | 40:43 |
| 119 | Jonas Rickaert | Alpecin-Premier Tech | 40:44 |
| 120 | Matej Mohoric | Bahrain Victorious | 40:55 |
| 121 | Michael Valgren | EF Education-EasyPost | 40:57 |
| 122 | Edward Planckaert | Alpecin-Premier Tech | 41:06 |
| 123 | Felix Engelhardt | Team Jayco-AlUla | 41:09 |
| 124 | Anthony Turgis | Team TotalEnergies | 41:20 |
| 125 | Xabier Azparren | Pinarello-Q36.5 Pro Cycling Team | 41:24 |
| 126 | Max Kanter | XDS Astana Team | 41:27 |
| 127 | Biniam Girmay | NSN Cycling Team | 41:40 |
| 128 | Silvan Dillier | Alpecin-Premier Tech | 41:43 |
| 129 | Nico Denz | Red Bull-BORA-hansgrohe | 41:49 |
| 130 | Brent Van Moer | Pinarello-Q36.5 Pro Cycling Team | 41:56 |
| 131 | Daan Hoole | Decathlon CMA CGM Team | 42:17 |
| 132 | Jan Tratnik | Red Bull-BORA-hansgrohe | 42:19 |
| 133 | Florian Vermeersch | UAE Team Emirates-XRG | 42:27 |
| 134 | Mads Pedersen | Lidl-Trek | 42:50 |
| 135 | Matthew Riccitello | Decathlon CMA CGM Team | 42:55 |
| 136 | Jasper Philipsen | Alpecin-Premier Tech | 43:01 |
| 137 | Matteo Trentin | Tudor Pro Cycling Team | 45:28 |
| 138 | Nicolas Vinokurov | XDS Astana Team | 45:31 |
| 139 | Søren Wærenskjold | Uno-X Mobility | 45:36 |
| 140 | Bruno Armirail | Team Visma | Lease a Bike | 46:54 |
| 141 | Anders Halland Johannessen | Uno-X Mobility | 47:16 |
| 142 | Alex Kirsch | Cofidis | 47:52 |
| 143 | Julian Alaphilippe | Tudor Pro Cycling Team | 49:02 |
| 144 | Robbe Dhondt | Team Picnic PostNL | 49:34 |
| 145 | Michal Kwiatkowski | Netcompany INEOS Cycling Team | 50:40 |
| 146 | Joshua Tarling | Netcompany INEOS Cycling Team | 51:34 |
| 147 | Alex Molenaar | Caja Rural-Seguros RGA | 51:39 |
| 148 | Niklas Märkl | Team Picnic PostNL | 51:58 |
| 149 | Dorian Godon | Netcompany INEOS Cycling Team | 52:17 |
| 150 | Lewis Askey | NSN Cycling Team | 52:18 |
| 151 | Filippo Ganna | Netcompany INEOS Cycling Team | 53:05 |
| 152 | John Degenkolb | Team Picnic PostNL | 53:12 |
| 153 | Pavel Bittner | Team Picnic PostNL | s.t. |
| 154 | Frits Biesterbos | Team Picnic PostNL | s.t. |
| 155 | Tim Marsman | Alpecin-Premier Tech | 53:17 |
| 156 | Tom Van Asbroeck | NSN Cycling Team | 53:18 |
| 157 | Julius van den Berg | Team Picnic PostNL | 53:35 |
| 158 | Matis Louvel | NSN Cycling Team | 53:59 |
| 159 | Jake Stewart | NSN Cycling Team | 54:06 |
| 160 | Fernando Gaviria | Caja Rural-Seguros RGA | 54:12 |
| 161 | Jenthe Biermans | Cofidis | 54:17 |
| 162 | Hugo Page | Cofidis | s.t. |
| 163 | Milan Fretin | Cofidis | 54:52 |
| 164 | Tim Merlier | Soudal Quick-Step | 54:56 |
| 165 | Phil Bauhaus | Bahrain Victorious | 55:07 |
| 166 | Kamil Gradek | Bahrain Victorious | s.t. |
| 167 | Pascal Ackermann | Team Jayco-AlUla | 55:21 |
| 168 | Tim van Dijke | Red Bull-BORA-hansgrohe | 55:24 |
| 169 | Fred Wright | Pinarello-Q36.5 Pro Cycling Team | 55:27 |
| 170 | Huub Artz | Lotto-Intermarché | 55:32 |
| 171 | Per Strand Hagenes | Team Visma | Lease a Bike | 55:59 |
| 172 | Piet Allegaert | Cofidis | 56:03 |
| 173 | Bert Van Lerberghe | Soudal Quick-Step | 56:14 |
| 174 | Liam Slock | Lotto-Intermarché | 57:27 |
| 175 | Edoardo Affini | Team Visma | Lease a Bike | 57:44 |
| 176 | Davide Ballerini | XDS Astana Team | 58:14 |
| 177 | Olav Kooij | Decathlon CMA CGM Team | 58:54 |
| 178 | Arvid de Kleijn | Tudor Pro Cycling Team | 59:01 |
| 179 | Baptiste Veistroffer | Lotto-Intermarché | 59:04 |
| 180 | Cees Bol | Decathlon CMA CGM Team | 59:13 |
| 181 | Marco Haller | Tudor Pro Cycling Team | 59:30 |
| 182 | Kelland O'Brien | Team Jayco-AlUla | 1:00:57 |
Stage 3 map & profile:

Stage 3 map

Stage 3 profile
Stage three photos by Fotoreporter Sirotti:

The peloton on the Les Angles climb.

Overnight GC leader Jonas Vingegaard and Tadej Pogacar (in world champion kit) on the Les Angles ascent.

American champion Quinn Simmons on the Les Angles climb.

Brandon McNulty

Lennert Van Eetvelt

Tadej Pogacar wins stage three.

Jonas Vingegaard finishes second, two seconds after Pogacar. That's third-place Richard Carapaz in pink right on his wheel.

Brandon McNulty and Tadej Pogacar just after the stage finish.

Isaac del Toro leads the Young Rider classification.

Tadej Pogacar will start stage four in yellow.