
Thursday, July 17: Stage 12, Auch - Hautacam, 180.6 km
Stage 12 map & profile | Stage 12 photos

Tadej Pogacar takes a brilliant solo win at Hautacam. ASO photo
Bill & Carol McGann's book The Story of the Tour de France, Vol 1: 1903 - 1975 is available in print, Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Rated ascents:
Weather at the city of Argelès-Gazost, on the route, 18.6 kms from the finish, at 2:10 PM, local time: 32C (90F), sunny, with the wind from the north-northeast at 10 km/hr (6 mph). No rain is forecast.
The stage: Tour boss Christian Prudhomme writes: Any day the Tour tackles the Pyrenees is always going to be significant. The battle between the favourites for the overall title will have greater magnitude today, particularly over the final 45 kilometres when the peloton initially tackles the Col du Soulor via Ferrières (11.9km at 7.3%), before advancing to the Col de Bordères. Then comes a real moment of truth in the shape of the 13.6km climb to Hautacam, where the gradient averages 7.8%.
The race: Ill, Cees Bol (XDS Astana) did not start. That left a starting peloton of 171 riders who passed km 0 at 1:24 PM.
Here's the race organizer's stage 12 summary:
The first mountain stage of the 2025 Tour de France saw Tadej Pogacar (UAE Team Emirates-XRG) assert his dominance on the slopes of Hautacam. The Slovenian dropped everyone with 12.5 kilometres to go and went on to claim his 20th stage win, his eighth in the Pyrenees and his first at Hautacam, where Jonas Vingegaard (Visma-Lease a Bike) had inflicted a significant defeat on him in 2022. This time, Pogacar opened up a gap of 2’10’’ on his Danish rival and regained the Maillot Jaune, just a day after he hit the deck in Toulouse.
Florian Lipowitz (Red Bull-Bora-Hansgrohe) emerged as the third strongest rider on the day, finishing just 11 seconds behind Vingegaard. Ben Healy was dropped on the Col du Soulor, with more than 50 kilometres to go, and had to relinquish the Maillot Jaune after two days in the overall lead.
The race
Onto the mountains! After eleven fast and furious stages, the peloton enter the Pyrenees with a 180.6-km stage from Auch to Hautacam, finishing atop the first HC climb of this edition (13.5km at 7.8%). There are 171 riders at the start after XDS-Astana announced Cees Bol would retire due to illness.
A climber-studded 52-man breakaway
In line with his glorious assault on Toulouse yesterday, Jonas Abrahamsen (Uno-X Mobility) attacks as soon as the peloton pass km 0. But this time, he’s rapidly reeled in. After a flurry of attacks, a 52-man group get away at km 17.
Part of this bunch of attackers, Carlos Rodriguez is the main GC threat: a top-10 finisher in 2023 (5th) and 2024 (7th), the Spaniard is the best classified in the overall standings (12th, +5’44’’). And he has four Ineos-Grenadiers teammates with him: Thymen Arensman, Tobias Foss, Axel Laurance and Connor Swift.

The day's break 50 kilometers into the stage. ASO photo
On the move to defend his polka-dot jersey, Lenny Martinez (Bahrain Victorious) is also up there with three teammates: Santiago Buitrago, Robert Stannard and Fred Wright. The group also features strong climbers such as Guillaume Martin-Guyonnet (Groupama-FDJ), Ben O’Connor (Jayco AlUla), Mattias Skjelmose (Lidl-Trek), Michael Woods (Israel Premier Tech)…
The Soulor takes a high toll
To control such a threatening group, EF Education-EasyPost, UAE Team Emirates-XRG and Uno-X Mobility work together. The gap hits its maximum of 2’20’’ at the bottom of the first cat.-1 ascent of this Tour, Col du Soulor (11.8km at 7.3%).
Visma-Lease a Bike immediately up the ante. And the race explodes. At the front, Michael Woods goes solo at the top (km 134.1). Skjelmose and Bruno Armirail (Decathlon AG2R La Mondiale) catch him on the downhill. The Frenchman, hailing from the Pyrenees, accelerates ahead of the climb to Col des Bordères (3.1km at 7.7%). At the bottom, he has a lead of 10’’ to his chasers. At the summit (km 145.7), the gap is up to 50''.
In the meantime, Remco Evenepoel (Soudal Quick-Step) and Ben Healy (EF Education-EasyPost) are already dropped halfway through the ascent. Matteo Jorgenson (Visma-Lease a Bike) struggles to keep up but survives with the help of Simon Yates. At the top, Evenepoel trails by 45’’ and Evenepoel by 2’45’’.
Pogacar flies away
On the downhill towards Hautacam, the GC contenders get back together. The chasers are caught and Bruno Armirail tackles the final climb with a lead of 1’40’’. UAE Team Emirates-XRG set a brutal pace at the bottom and Jhonatan Narvaez propels Tadej Pogacar’s attack with 12.5 km to go. Nobody can follow and Armirail is rapidly reeled in and dropped.

Alone and off the front. Tadej Pogacar on the final climb to the finish with Vingegaard more than a minute back.
The Slovenian gradually increases his lead until he takes victory on a summit where he had lost 1’04’’ to Vingegaard three years ago. This time, the Danish climber trails by 2’10’’ and crosses the line just ahead of Florian Lipowitz (Red Bull-Bora-Hansgrohe), the third strongest man of the day, with a gap of 2’21’’. Healy eventually finished more than 10 minutes later, relinquishing the Maillot Jaune to Pogacar after two days in the overall lead.
Complete results:
180.6 kilometers raced at an average speed of 41.467 km/hr
| 1 | Tadej Pogacar | UAE Team Emirates-XRG | 4hr 21min 19sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 2min 10sec |
| 3 | Florian Lipowitz | Red Bull-BORA-hansgrohe | 2:23 |
| 4 | Tobias Halland Johannessen | Uno-X Mobility | 3:00 |
| 5 | Oscar Onley | Team Picnic PostNL | 3:00 |
| 6 | Kévin Vauquelin | Arkea-B&B Hotels | 3:33 |
| 7 | Remco Evenepoel | Soudal Quick-Step | 3:35 |
| 8 | Felix Gall | Decathlon AG2R La Mondiale | 4:02 |
| 9 | Primoz Roglic | Red Bull-BORA-hansgrohe | 4:08 |
| 10 | Cristian Rodriguez | Arkea-B&B Hotels | 7:26 |
| 11 | Einer Rubio | Movistar Team | 7:27 |
| 12 | Raúl García | Arkea-B&B Hotels | 7:33 |
| 13 | Guillaume Martin-Guyonnet | Groupama-FDJ | 9:05 |
| 14 | Sergio Higuita | XDS Astana Team | 9:38 |
| 15 | Matteo Jorgenson | Team Visma | Lease a Bike | 10:25 |
| 16 | Ben O'Connor | Team Jayco-AlUla | 10:43 |
| 17 | Bruno Armirail | Decathlon AG2R La Mondiale | 10:46 |
| 18 | Jhonatan Narvaez | UAE Team Emirates-XRG | 10:50 |
| 19 | Jordan Jegat | Team TotalEnergies | 11:47 |
| 20 | Aurélien Paret-Peintre | Decathlon AG2R La Mondiale | s.t. |
| 21 | Steff Cras | Team TotalEnergies | 11:53 |
| 22 | Carlos Rodriguez | INEOS Grenadiers | 12:31 |
| 23 | Adam Yates | UAE Team Emirates-XRG | 13:10 |
| 24 | Sepp Kuss | Team Visma | Lease a Bike | 13:30 |
| 25 | Ben Healy | EF Education-EasyPost | 13:38 |
| 26 | Simone Velasco | XDS Astana Team | s.t. |
| 27 | Ewen Costiou | Arkea-B&B Hotels | 14:08 |
| 28 | Simon Yates | Team Visma | Lease a Bike | 15:07 |
| 29 | Mattias Skjelmose | Lidl-Trek | 15:23 |
| 30 | Warren Barguil | Team Picnic PostNL | 15:53 |
| 31 | Gregor Mühlberger | Movistar Team | 16:00 |
| 32 | Emanuel Buchmann | Cofidis | s.t. |
| 33 | Enric Mas | Movistar Team | s.t. |
| 34 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | s.t. |
| 35 | Santiago Buitrago | Bahrain Victorious | s.t. |
| 36 | Harold Tejada | XDS Astana Team | s.t. |
| 37 | Michael Storer | Tudor Pro Cycling Team | s.t. |
| 38 | Valentin Madouas | Groupama-FDJ | 17:09 |
| 39 | Thymen Arensman | INEOS Grenadiers | 18:17 |
| 40 | Michael Woods | Israel-Premier Tech | s.t. |
| 41 | Tim Wellens | UAE Team Emirates-XRG | 20:15 |
| 42 | Clément Berthet | Decathlon AG2R La Mondiale | s.t. |
| 43 | Harry Sweeny | EF Education-EasyPost | 20:42 |
| 44 | Clément Venturini | Arkea-B&B Hotels | 27:36 |
| 45 | Mathis Le Berre | Arkea-B&B Hotels | s.t. |
| 46 | Callum Scotson | Decathlon AG2R La Mondiale | 28:03 |
| 47 | Ion Izagirre | Cofidis | 28:48 |
| 48 | Pablo Castrillo | Movistar Team | s.t. |
| 49 | Pavel Sivakov | UAE Team Emirates-XRG | 29:13 |
| 50 | Thomas Gachignard | Team TotalEnergies | s.t. |
| 51 | Ilan Van Wilder | Soudal Quick-Step | s.t. |
| 52 | Iván Romeo | Movistar Team | s.t. |
| 53 | Max Schachmann | Soudal Quick-Step | s.t. |
| 54 | Marc Soler | UAE Team Emirates-XRG | s.t. |
| 55 | Joe Blackmore | Israel-Premier Tech | s.t. |
| 56 | Victor Campenaerts | Team Visma | Lease a Bike | 30:07 |
| 57 | Marc Hirschi | Tudor Pro Cycling Team | 30:14 |
| 58 | Louis Barré | Intermarché-Wanty | 31:15 |
| 59 | Alex Baudin | EF Education-EasyPost | 31:22 |
| 60 | Xandro Meurisse | Alpecin-Deceuninck | s.t. |
| 61 | Tiesj Benoot | Team Visma | Lease a Bike | s.t. |
| 62 | Pascal Eenkhoorn | Soudal Quick-Step | s.t. |
| 63 | Laurence Pithie | Red Bull-BORA-hansgrohe | s.t. |
| 64 | Nelson Oliveira | Movistar Team | s.t. |
| 65 | Neilson Powless | EF Education-EasyPost | s.t. |
| 66 | Quentin Pacher | Groupama-FDJ | s.t. |
| 67 | Cyril Barthe | Groupama-FDJ | s.t. |
| 68 | Bastien Tronchon | Decathlon AG2R La Mondiale | s.t. |
| 69 | Valentin Paret-Peintre | Soudal Quick-Step | s.t. |
| 70 | Silvan Dillier | Alpecin-Deceuninck | s.t. |
| 71 | Alexey Lutsenko | Israel-Premier Tech | s.t. |
| 72 | Jasper Stuyven | Lidl-Trek | s.t. |
| 73 | Oliver Naesen | Decathlon AG2R La Mondiale | s.t. |
| 74 | Jonas Rickaert | Alpecin-Deceuninck | s.t. |
| 75 | Markus Hoelgaard | Uno-X Mobility | s.t. |
| 76 | Emiel Verstrynge | Alpecin-Deceuninck | s.t. |
| 77 | Clément Champoussin | XDS Astana Team | s.t. |
| 78 | William Barta | Movistar Team | s.t. |
| 79 | Gianni Vermeersch | Alpecin-Deceuninck | s.t. |
| 80 | Brent Van Moer | Lotto | s.t. |
| 81 | Niklas Märkl | Team Picnic PostNL | 31:43 |
| 82 | Nils Politt | UAE Team Emirates-XRG | s.t. |
| 83 | Sean Flynn | Team Picnic PostNL | 32:53 |
| 84 | Marius Mayrhofer | Tudor Pro Cycling Team | 32:59 |
| 85 | Quinn Simmons | Lidl-Trek | 33:03 |
| 86 | Frank van den Broek | Team Picnic PostNL | 33:14 |
| 87 | Kaden Groves | Alpecin-Deceuninck | 33:18 |
| 88 | Jonas Abrahamsen | Uno-X Mobility | 33:24 |
| 89 | Geraint Thomas | INEOS Grenadiers | 33:30 |
| 90 | Romain Grégoire | Groupama-FDJ | 33:40 |
| 91 | Julian Alaphilippe | Tudor Pro Cycling Team | 34:01 |
| 92 | Alexandre Delettre | Team TotalEnergies | s.t. |
| 93 | Mathieu van der Poel | Alpecin-Deceuninck | s.t. |
| 94 | Mike Teunissen | XDS Astana Team | 34:33 |
| 95 | Tobias Foss | INEOS Grenadiers | 34:57 |
| 96 | Michael Valgren | EF Education-EasyPost | s.t. |
| 97 | Lenny Martinez | Bahrain Victorious | 35:45 |
| 98 | Jonas Rutsch | Intermarché-Wanty | 36:27 |
| 99 | Roel van Sintmaartensdijk | Intermarché-Wanty | s.t. |
| 100 | Axel Laurance | INEOS Grenadiers | 37:00 |
| 101 | Laurenz Rex | Intermarché-Wanty | s.t. |
| 102 | Clément Russo | Groupama-FDJ | 37:08 |
| 103 | Paul Penhoët | Groupama-FDJ | s.t. |
| 104 | Mattéo Vercher | Team TotalEnergies | 37:10 |
| 105 | Mauro Schmid | Team Jayco-AlUla | s.t. |
| 106 | Mathieu Burgaudeau | Team TotalEnergies | s.t. |
| 107 | Anthony Turgis | Team TotalEnergies | 37:15 |
| 108 | Lennert Van Eetvelt | Lotto | 37:21 |
| 109 | Jenno Berckmoes | Lotto | 38:01 |
| 110 | Luke Durbridge | Team Jayco-AlUla | s.t. |
| 111 | Connor Swift | INEOS Grenadiers | s.t. |
| 112 | Iván García Cortina | Movistar Team | 38:28 |
| 113 | Hugo Page | Intermarché-Wanty | 38:42 |
| 114 | Alex Aranburu | Cofidis | 39:03 |
| 115 | Vito Braet | Intermarché-Wanty | s.t. |
| 116 | Kasper Asgreen | EF Education-EasyPost | 39:19 |
| 117 | Biniam Girmay | Intermarché-Wanty | 39:23 |
| 118 | Wout van Aert | Team Visma | Lease a Bike | 39:25 |
| 119 | Pascal Ackermann | Israel-Premier Tech | s.t. |
| 120 | Sam Watson | INEOS Grenadiers | s.t. |
| 121 | Krists Neilands | Israel-Premier Tech | s.t. |
| 122 | Eduardo Sepulveda | Lotto | 39:30 |
| 123 | Andreas Leknessund | Uno-X Mobility | 39:37 |
| 124 | Mick van Dijke | Red Bull-BORA-hansgrohe | 39:52 |
| 125 | Vincenzo Albanese | EF Education-EasyPost | s.t. |
| 126 | Guillaume Boivin | Israel-Premier Tech | 39:56 |
| 127 | Tim Naberman | Team Picnic PostNL | 40:07 |
| 128 | Pavel Bittner | Team Picnic PostNL | s.t. |
| 129 | Tobias Lund Andresen | Team Picnic PostNL | s.t. |
| 130 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 131 | Jake Stewart | Israel-Premier Tech | s.t. |
| 132 | Edoardo Affini | Team Visma | Lease a Bike | s.t. |
| 133 | Gianni Moscon | Red Bull-BORA-hansgrohe | s.t. |
| 134 | Amaury Capiot | Arkea-B&B Hotels | s.t. |
| 135 | Matis Louvel | Israel-Premier Tech | s.t. |
| 136 | Alexis Renard | Cofidis | s.t. |
| 137 | Robert Stannard | Bahrain Victorious | s.t. |
| 138 | Fabian Lienhard | Tudor Pro Cycling Team | s.t. |
| 139 | Tim Merlier | Soudal Quick-Step | s.t. |
| 140 | Bert Van Lerberghe | Soudal Quick-Step | s.t. |
| 141 | Jarrad Drizners | Lotto | s.t. |
| 142 | Lucas Plapp | Team Jayco-AlUla | s.t. |
| 143 | Damien Touzé | Cofidis | s.t. |
| 144 | Marco Haller | Tudor Pro Cycling Team | s.t. |
| 145 | Sébastien Grignard | Lotto | 40:15 |
| 146 | Dylan Teuns | Cofidis | 40:17 |
| 147 | Fred Wright | Bahrain Victorious | 40:31 |
| 148 | Arnaud De Lie | Lotto | 40:55 |
| 149 | Kamil Gradek | Bahrain Victorious | 41:04 |
| 150 | Stian Fredheim | Uno-X Mobility | 41:49 |
| 151 | Alberto Dainese | Tudor Pro Cycling Team | s.t. |
| 152 | Yevgeniy Fedorov | XDS Astana Team | s.t. |
| 153 | Jonathan Milan | Lidl-Trek | s.t. |
| 154 | Phil Bauhaus | Bahrain Victorious | s.t. |
| 155 | Matej Mohoric | Bahrain Victorious | s.t. |
| 156 | Edward Theuns | Lidl-Trek | s.t. |
| 157 | Thibau Nys | Lidl-Trek | s.t. |
| 158 | Lewis Askey | Groupama-FDJ | s.t. |
| 159 | Toms Skujins | Lidl-Trek | s.t. |
| 160 | Arnaud Démare | Arkea-B&B Hotels | s.t. |
| 161 | Simone Consonni | Lidl-Trek | 42:00 |
| 162 | Davide Ballerini | XDS Astana Team | s.t. |
| 163 | Anders Halland Johannessen | Uno-X Mobility | 42:05 |
| 164 | Benjamin Thomas | Cofidis | 42:11 |
| 165 | Jordi Meeus | Red Bull-BORA-hansgrohe | 42:21 |
| 166 | Dylan Groenewegen | Team Jayco-AlUla | 43:20 |
| 167 | Matteo Trentin | Tudor Pro Cycling Team | 43:29 |
| 168 | Magnus Cort | Uno-X Mobility | 43:31 |
| 169 | Elmar Reinders | Team Jayco-AlUla | s.t. |
| 170 | Luka Mezgec | Team Jayco-AlUla | 44:03 |
| 171 | Bryan Coquard | Cofidis | s.t. |
GC after stage 12:
2,023.4 kilometers raced so far at an average speed of 44.587 km/hr
| 1 | Tadej Pogacar | UAE Team Emirates-XRG | 45hr 22min 51sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 3min 31sec |
| 3 | Remco Evenepoel | Soudal Quick-Step | 4:45 |
| 4 | Florian Lipowitz | Red Bull-BORA-hansgrohe | 5:34 |
| 5 | Kévin Vauquelin | Arkea-B&B Hotels | 5:40 |
| 6 | Oscar Onley | Team Picnic PostNL | 6:05 |
| 7 | Primoz Roglic | Red Bull-BORA-hansgrohe | 7:30 |
| 8 | Tobias Halland Johannessen | Uno-X Mobility | 7:44 |
| 9 | Felix Gall | Decathlon AG2R La Mondiale | 9:21 |
| 10 | Matteo Jorgenson | Team Visma | Lease a Bike | 12:12 |
| 11 | Ben Healy | EF Education-EasyPost | 13:19 |
| 12 | Carlos Rodriguez | INEOS Grenadiers | 17:56 |
| 13 | Jordan Jegat | Team TotalEnergies | 18:00 |
| 14 | Guillaume Martin-Guyonnet | Groupama-FDJ | 19:30 |
| 15 | Enric Mas | Movistar Team | 21:37 |
| 16 | Jhonatan Narvaez | UAE Team Emirates-XRG | 22:00 |
| 17 | Ben O'Connor | Team Jayco-AlUla | 22:14 |
| 18 | Mattias Skjelmose | Lidl-Trek | 27:49 |
| 19 | Cristian Rodriguez | Arkea-B&B Hotels | 30:21 |
| 20 | Emanuel Buchmann | Cofidis | 31:22 |
| 21 | Sepp Kuss | Team Visma | Lease a Bike | 33:00 |
| 22 | Simon Yates | Team Visma | Lease a Bike | 35:14 |
| 23 | Thymen Arensman | INEOS Grenadiers | 40:04 |
| 24 | Valentin Madouas | Groupama-FDJ | 40:18 |
| 25 | Sergio Higuita | XDS Astana Team | 40:53 |
| 26 | Clément Berthet | Decathlon AG2R La Mondiale | 43:46 |
| 27 | Romain Grégoire | Groupama-FDJ | 48:36 |
| 28 | Adam Yates | UAE Team Emirates-XRG | 49:15 |
| 29 | Steff Cras | Team TotalEnergies | 49:19 |
| 30 | Warren Barguil | Team Picnic PostNL | 51:13 |
| 31 | Aurélien Paret-Peintre | Decathlon AG2R La Mondiale | 52:29 |
| 32 | Xandro Meurisse | Alpecin-Deceuninck | 52:31 |
| 33 | Aleksandr Vlasov | Red Bull-BORA-hansgrohe | 54:19 |
| 34 | Tiesj Benoot | Team Visma | Lease a Bike | 55:00 |
| 35 | Simone Velasco | XDS Astana Team | 57:38 |
| 36 | Callum Scotson | Decathlon AG2R La Mondiale | 58:02 |
| 37 | Quentin Pacher | Groupama-FDJ | 58:11 |
| 38 | Joe Blackmore | Israel-Premier Tech | 58:13 |
| 39 | Gregor Mühlberger | Movistar Team | 58:20 |
| 40 | Mathieu van der Poel | Alpecin-Deceuninck | 58:53 |
| 41 | Clément Venturini | Arkea-B&B Hotels | 1:01:00 |
| 42 | Alex Baudin | EF Education-EasyPost | 1:01:23 |
| 43 | Harry Sweeny | EF Education-EasyPost | 1:03:39 |
| 44 | Ilan Van Wilder | Soudal Quick-Step | 1:06:36 |
| 45 | Pascal Eenkhoorn | Soudal Quick-Step | 1:07:52 |
| 46 | Quinn Simmons | Lidl-Trek | 1:08:04 |
| 47 | Victor Campenaerts | Team Visma | Lease a Bike | 1:08:13 |
| 48 | Markus Hoelgaard | Uno-X Mobility | 1:08:26 |
| 49 | Alexandre Delettre | Team TotalEnergies | 1:11:03 |
| 50 | Raúl García | Arkea-B&B Hotels | 1:12:33 |
| 51 | Tim Wellens | UAE Team Emirates-XRG | 1:12:47 |
| 52 | Neilson Powless | EF Education-EasyPost | 1:12:59 |
| 53 | Axel Laurance | INEOS Grenadiers | 1:15:20 |
| 54 | Thomas Gachignard | Team TotalEnergies | 1:15:47 |
| 55 | Jenno Berckmoes | Lotto | 1:16:41 |
| 56 | Mathieu Burgaudeau | Team TotalEnergies | 1:17:07 |
| 57 | Frank van den Broek | Team Picnic PostNL | 1:17:44 |
| 58 | Geraint Thomas | INEOS Grenadiers | 1:17:50 |
| 59 | Bruno Armirail | Decathlon AG2R La Mondiale | 1:18:19 |
| 60 | Nelson Oliveira | Movistar Team | 1:20:19 |
| 61 | Jasper Stuyven | Lidl-Trek | 1:23:21 |
| 62 | Marc Soler | UAE Team Emirates-XRG | 1:23:41 |
| 63 | Santiago Buitrago | Bahrain Victorious | 1:24:26 |
| 64 | Max Schachmann | Soudal Quick-Step | 1:24:27 |
| 65 | Harold Tejada | XDS Astana Team | 1:24:49 |
| 66 | Wout van Aert | Team Visma | Lease a Bike | 1:24:54 |
| 67 | Julian Alaphilippe | Tudor Pro Cycling Team | 1:25:43 |
| 68 | Michael Storer | Tudor Pro Cycling Team | 1:26:30 |
| 69 | Michael Woods | Israel-Premier Tech | 1:26:34 |
| 70 | Bastien Tronchon | Decathlon AG2R La Mondiale | 1:27:38 |
| 71 | Einer Rubio | Movistar Team | 1:27:51 |
| 72 | Ewen Costiou | Arkea-B&B Hotels | 1:28:22 |
| 73 | Mathis Le Berre | Arkea-B&B Hotels | 1:31:13 |
| 74 | Emiel Verstrynge | Alpecin-Deceuninck | 1:31:59 |
| 75 | Valentin Paret-Peintre | Soudal Quick-Step | 1:32:24 |
| 76 | Alex Aranburu | Cofidis | 1:32:42 |
| 77 | Oliver Naesen | Decathlon AG2R La Mondiale | 1:33:29 |
| 78 | Marc Hirschi | Tudor Pro Cycling Team | 1:34:09 |
| 79 | Marius Mayrhofer | Tudor Pro Cycling Team | 1:34:38 |
| 80 | Clément Champoussin | XDS Astana Team | 1:35:49 |
| 81 | Alexey Lutsenko | Israel-Premier Tech | 1:36:28 |
| 82 | Cyril Barthe | Groupama-FDJ | 1:37:11 |
| 83 | Ion Izagirre | Cofidis | 1:37:16 |
| 84 | Michael Valgren | EF Education-EasyPost | 1:37:49 |
| 85 | Krists Neilands | Israel-Premier Tech | 1:38:47 |
| 86 | Mauro Schmid | Team Jayco-AlUla | 1:39:00 |
| 87 | Tobias Foss | INEOS Grenadiers | 1:39:52 |
| 88 | Brent Van Moer | Lotto | 1:40:14 |
| 89 | Gianni Moscon | Red Bull-BORA-hansgrohe | 1:41:15 |
| 90 | Anders Halland Johannessen | Uno-X Mobility | 1:42:39 |
| 91 | Andreas Leknessund | Uno-X Mobility | 1:43:45 |
| 92 | Jonas Abrahamsen | Uno-X Mobility | 1:44:12 |
| 93 | Mike Teunissen | XDS Astana Team | 1:44:30 |
| 94 | Dylan Teuns | Cofidis | 1:44:40 |
| 95 | Toms Skujins | Lidl-Trek | s.t. |
| 96 | Kasper Asgreen | EF Education-EasyPost | 1:44:41 |
| 97 | William Barta | Movistar Team | 1:44:57 |
| 98 | Marco Haller | Tudor Pro Cycling Team | 1:45:16 |
| 99 | Pablo Castrillo | Movistar Team | 1:45:40 |
| 100 | Laurence Pithie | Red Bull-BORA-hansgrohe | 1:45:48 |
| 101 | Matteo Trentin | Tudor Pro Cycling Team | 1:46:01 |
| 102 | Lenny Martinez | Bahrain Victorious | 1:50:17 |
| 103 | Tobias Lund Andresen | Team Picnic PostNL | 1:50:37 |
| 104 | Kaden Groves | Alpecin-Deceuninck | 1:51:23 |
| 105 | Nils Politt | UAE Team Emirates-XRG | 1:52:54 |
| 106 | Damien Touzé | Cofidis | 1:53:46 |
| 107 | Pavel Sivakov | UAE Team Emirates-XRG | 1:54:18 |
| 108 | Fred Wright | Bahrain Victorious | 1:57:32 |
| 109 | Iván Romeo | Movistar Team | 1:58:19 |
| 110 | Louis Barré | Intermarché-Wanty | 1:58:23 |
| 111 | Jonas Rickaert | Alpecin-Deceuninck | 2:00:17 |
| 112 | Matis Louvel | Israel-Premier Tech | 2:00:29 |
| 113 | Eduardo Sepulveda | Lotto | 2:02:14 |
| 114 | Iván García Cortina | Movistar Team | 2:02:25 |
| 115 | Connor Swift | INEOS Grenadiers | 2:02:53 |
| 116 | Bryan Coquard | Cofidis | 2:03:05 |
| 117 | Anthony Turgis | Team TotalEnergies | 2:03:52 |
| 118 | Clément Russo | Groupama-FDJ | 2:04:21 |
| 119 | Gianni Vermeersch | Alpecin-Deceuninck | 2:05:32 |
| 120 | Vincenzo Albanese | EF Education-EasyPost | 2:06:10 |
| 121 | Robert Stannard | Bahrain Victorious | 2:06:30 |
| 122 | Niklas Märkl | Team Picnic PostNL | 2:10:41 |
| 123 | Thibau Nys | Lidl-Trek | 2:12:58 |
| 124 | Pascal Ackermann | Israel-Premier Tech | 2:15:48 |
| 125 | Alberto Dainese | Tudor Pro Cycling Team | 2:16:22 |
| 126 | Sam Watson | INEOS Grenadiers | 2:16:39 |
| 127 | Danny van Poppel | Red Bull-BORA-hansgrohe | 2:16:48 |
| 128 | Matej Mohoric | Bahrain Victorious | 2:16:50 |
| 129 | Paul Penhoët | Groupama-FDJ | 2:16:52 |
| 130 | Biniam Girmay | Intermarché-Wanty | 2:20:32 |
| 131 | Sean Flynn | Team Picnic PostNL | 2:20:34 |
| 132 | Lucas Plapp | Team Jayco-AlUla | 2:21:21 |
| 133 | Jake Stewart | Israel-Premier Tech | 2:21:56 |
| 134 | Edoardo Affini | Team Visma | Lease a Bike | 2:22:20 |
| 135 | Elmar Reinders | Team Jayco-AlUla | 2:24:26 |
| 136 | Jonas Rutsch | Intermarché-Wanty | 2:24:53 |
| 137 | Arnaud De Lie | Lotto | 2:25:48 |
| 138 | Amaury Capiot | Arkea-B&B Hotels | 2:27:47 |
| 139 | Laurenz Rex | Intermarché-Wanty | 2:28:08 |
| 140 | Pavel Bittner | Team Picnic PostNL | 2:28:20 |
| 141 | Dylan Groenewegen | Team Jayco-AlUla | 2:29:05 |
| 142 | Lewis Askey | Groupama-FDJ | 2:29:21 |
| 143 | Magnus Cort | Uno-X Mobility | 2:30:17 |
| 144 | Alexis Renard | Cofidis | 2:30:48 |
| 145 | Hugo Page | Intermarché-Wanty | 2:30:49 |
| 146 | Stian Fredheim | Uno-X Mobility | 2:30:53 |
| 147 | Tim Merlier | Soudal Quick-Step | 2:31:15 |
| 148 | Silvan Dillier | Alpecin-Deceuninck | 2:31:49 |
| 149 | Vito Braet | Intermarché-Wanty | 2:32:16 |
| 150 | Bert Van Lerberghe | Soudal Quick-Step | 2:32:22 |
| 151 | Jonathan Milan | Lidl-Trek | 2:32:33 |
| 152 | Luke Durbridge | Team Jayco-AlUla | 2:32:49 |
| 153 | Tim Naberman | Team Picnic PostNL | 2:33:10 |
| 154 | Benjamin Thomas | Cofidis | 2:33:48 |
| 155 | Luka Mezgec | Team Jayco-AlUla | 2:34:15 |
| 156 | Mick van Dijke | Red Bull-BORA-hansgrohe | 2:34:39 |
| 157 | Lennert Van Eetvelt | Lotto | 2:34:49 |
| 158 | Phil Bauhaus | Bahrain Victorious | 2:35:30 |
| 159 | Arnaud Démare | Arkea-B&B Hotels | 2:35:33 |
| 160 | Davide Ballerini | XDS Astana Team | 2:36:27 |
| 161 | Jarrad Drizners | Lotto | 2:36:50 |
| 162 | Guillaume Boivin | Israel-Premier Tech | 2:36:59 |
| 163 | Sébastien Grignard | Lotto | 2:39:57 |
| 164 | Kamil Gradek | Bahrain Victorious | 2:41:35 |
| 165 | Yevgeniy Fedorov | XDS Astana Team | 2:42:22 |
| 166 | Simone Consonni | Lidl-Trek | 2:42:57 |
| 167 | Edward Theuns | Lidl-Trek | 2:43:10 |
| 168 | Fabian Lienhard | Tudor Pro Cycling Team | 2:43:43 |
| 169 | Roel van Sintmaartensdijk | Intermarché-Wanty | 2:45:18 |
| 170 | Jordi Meeus | Red Bull-BORA-hansgrohe | 2:46:40 |
| 171 | Mattéo Vercher | Team TotalEnergies | 2:51:29 |
Stage 12 map & profile:

Stage 12 map

Stage 12 profile
Stage 12 photos by Fotoreporter Sirotti:
These photos were taken of the final Hautacam climb.

Bean Healy's last moments in yellow. He came in 25th, at 13min 38sec. On his wheel is Simone Velasco.

Primoz Roglic was ninth.

Remco Evenepoel was seventh.

Kévin Vauquelin riding to sixth in the stage.

Fifth-placed Oscar Onley

Tobias Halland Johannessen was fourth.

Here's third-place Florian Lipowitz

Jonas Vingegaard was second.

Pogacar finishes first in the stage, good enough to make him the new GC leader.

Tadej Pogacar will start stage thirteen in yellow.