Jonas Vingegaard (Jumbo-Visma) 1st
The yellow jersey again proved he can stand up to the challenge of Tadej Pogačar as the Slovenian's attempts to pressure and distance him proved unsuccessful on the Port de Lers.
Vingegaard bridged across to Pogačar's wheel after three separate attacks, two on the ascent of the climb and one on the descent which he launched over the summit.
A little help from Wout van Aert and Sepp Kuss on the final climb of the Mur de Péguère ensured the Dane again lost no time and took one step closer to the winner's podium in Paris.
Tadej Pogačar (UAE Team Emirates) 2nd, +02:22
Pogačar was his usual aggressive self since losing yellow to Vingegaard on the Col du Granon in stage 11, attacking multiple times with speed on the steep ascent of the Port de Lers, but his rival was "well protected" as the Slovenian put it post-stage.
While he hasn't yet cut into Vingegaard's lead, he also hasn't lost any more time, and will be able to really apply the pressure in the next two Pyrenees stages this week and try his best to push Jumbo-Visma to the limit.
Geraint Thomas (INEOS Grenadiers) 3rd, +02:43
The Welshman once again showcased his cycling savvy today, letting the young 'whippersnappers' in Vingegaard and Pogačar attack each other while he stuck to the favourites group and remained consistent throughout the stage.
Thomas rode alongside sixth-placed teammate Adam Yates for most of the day, but had better legs on the Mur de Péguère to be able to recover from being distanced when Kuss took over the pacing, whereas Yates was dropped twice.
He reached the summit of the final climb still with a gap to make up to the UAE and Jumbo group, but had teammate Dani Martinez waiting from his foray into the break to give him a helping hand and finished without losing any time.
Nairo Quintana (Arkea-Samsic) 4th, +04:15
Quintana looked more like the 3rd-placed GC rider than the 4th as his climbing legs looked superb in the Pyrenees.
While he couldn't follow the attacks of Pogačar, the Colombian was the only rider outside the top two and their domestiques to stay with the pace on the climbs once the group was established, never dropped while other top 10 hopefuls Romain Bardet (Team DSM), David Gaudu (Groupama-FDJ), Thomas and Yates all were at times.
The difference for Quintana might be his team though, with UAE, Jumbo and INEOS all much more present in the overall battle than Arkea-Samsic. He'll no doubt perform well in the next mountain tests, but we've seen to be on top in this race you need team support to get you over the top.
David Gaudu (Groupama-FDJ) 5th, +04:24
Gaudu started well and looked to have good legs on the first climb, counter-attacking the favourites group at one point in a move we haven't seen from many riders bar a Slovenian and a Dane.
But as the pace got quicker and the gradients got tougher the Frenchman faltered as he was dropped along with Thomas and Yates then distanced entirely by Thomas as the Welshman tried to bridge back.
Gaudu didn't give up though and produced an incredible solo effort to rejoin the group of favourites 10 kilometres from the finish in Foix, moving up three overall places as a reward.
Yates, Meintjes, Vlasov, Bardet
Adam Yates never managed to regain his good legs after the climbs, slipping one spot to sixth overall and losing a minute and 22 seconds, Romain Bardet another who struggled as he was dropped multiple times and fell from fourth to ninth after being second following stage 11. The Frenchman now has a deficit of six minutes and 36 seconds.
The best performer on the day was Aleksandr Vlasov (BORA-Hansgrohe) who after struggling mightily in the first two weeks managed to get in the break and gain four minutes and 14 seconds to jump into eighth overall, while Louis Meintjes (Intermarche-Wanty-Gobert-Materieaux) kept his seventh overall spot but lost one minute and 22 seconds on the stage.
The Tour de France continues in the Pyrenees with another mountain stage for Stage 17. Watch from 9.05pm AEST on the SBS SKODA Tour Tracker, with the SBS and SBS On Demand broadcast starting from 9.30pm AEST.