Britain's Simon Yates claimed his maiden Tour de France stage win with a shrewd victory on stage 12.
Yates outsprinted Pello Bilbao and Gregor Muhlberger in a technical finish in Bagneres-de-Bigorre after the trio had broken clear with 32km remaining.
He has now won stages at all three Grand Tours, having previously won at the Giro d'Italia and Vuelta a Espana.
Frenchman Julian Alaphilippe retained the yellow jersey as he finished in the peloton, with Geraint Thomas second.
Defending champion Thomas is 72 seconds behind Alaphilippe but will have the opportunity to reduce that deficit in Friday's 27km time trial in Pau.
"I am very proud," said Yates. "Hopefully there is more to come."
Vuelta champion Yates is riding the Tour to help his twin brother Adam's general classification ambitions.
However, after losing more than an hour in the overall standings during the first 10 stages the Mitchelton-Scott rider took his chance to claim individual glory.
"I've been saving energy until we got here in the mountains and this was the first chance to try something," Yates added.
"Normally I would be back helping Adam but I had my own chance and grabbed it with both hands."
Education First's Simon Clarke led solo on the final climb of the day, La Hourquette d'Ancizan, before he was reeled in by Yates' team-mate Matteo Trentin within 5km of the summit.
Yates bridged across with a select group from the remainder of a 40-man breakaway and dropped everyone except Muhlberger before Bilbao joined them near the top and the trio worked together to establish a decisive gap on the descent.
As they arrived in Bagneres-de-Bigorre, Yates initially held back before surging to the front for a near 90-degree left-hand turn with 150 metres to go and kicked again to hold off Bilbao - who Adam Yates picked for victory in his stage guide - with Muhlberger third.
"I wasn't very confident of beating either of them as I didn't know how fast they are," said Simon Yates.
"But my director said I had to be in front coming round the last corner so I made sure I did that and thankfully held on to win."
The peloton rolled in nine and minutes 35 seconds down on Yates, with none of the general classification contenders attempting any attacks before Friday's time trial and two tough mountain stages at the weekend.
"We were expecting something to happen on the final climb but nothing materialised," Thomas told ITV4.
"Everyone is mindful of the next three days, which are going to be big for the GC. I'll go all out in the time trial and see where it puts me."
World time trial champion Rohan Dennis, who had been one of the favourites for Friday's stage, abandoned the Tour in mysterious circumstances with 80km to go on stage 12.
The Australian Bahrain-Merida rider would not speak to journalists at his team bus when asked why he had withdrawn.
"Our priority is the welfare of all our riders so we will launch an immediate investigation but we will not be commenting further until we have established what has happened to Rohan Dennis," said Bahrain-Merida in a statement.
1. Simon Yates (GB/Mitchelton-Scott) 4hrs 57mins 53secs
2. Pello Bilbao (Spa/Astana Pro Team) Same time
3. Gregor Muhlberger (Aut/BORA-hansgrohe)
4. Tiesj Benoot (Bel/Lotto-Soudal) +1min 28secs
5. Fabio Felline (Ita/Trek-Segafredo) Same time
6. Matteo Trentin (Ita/Mitchelton-Scott)
7. Oliver Naesen (Bel/AG2R La Mondiale)
8. Rui Costa (Por/UAE Team Emirates)
9. Simon Clarke (Aus/EF Education First)
10. Jasper Stuyven (Bel/Trek-Segafredo)
1. Julian Alaphilippe (Fra/Deceuninck-Quick-Step) 52hrs 26mins 9secs
2. Geraint Thomas (GB/Team INEOS) +1min 12secs
3. Egan Bernal (Col/Team INEOS) +1min 16secs
4. Steven Kruijswijk (Ned/Team Jumbo-Visma) +1min 27secs
5. Emanuel Buchmann (Ger/BORA-hansgrohe) +1min 45secs
6. Enric Mas (Spa/Deceuninck-Quick-Step) +1min 46secs
7. Adam Yates (GB/Mitchelton-Scott) +1min 47secs
8. Nairo Quintana (Col/Movistar Team) +2mins 4secs
9. Daniel Martin (Ire/UAE Team Emirates) +2mins 9secs
10. Thibaut Pinot (Fra/Groupama-FDJ) +2min 33secs