Joaquim Rodriguez won his second stage of this year's Tour de France as Chris Froome held off attacks from his yellow jersey rivals on stage 12.
Team Sky's Froome clawed back breaks from Vincenzo Nibali, Alberto Contador and Nairo Quintana on the gruelling 15.8km climb up Plateau de Beille.
The Briton is still two minutes 52 seconds ahead of Tejay van Garderen.
Spaniard Rodriguez overhauled Michal Kwiatkowski in driving rain late on to win the 195km route from Lannemezan.
It was the second stage win of the Tour for the 36-year-old Spaniard after he triumphed up the sharp climb of the Mur de Huy in Belgium on stage three.
Rodriguez understandably punched the air as he crossed the line in torrential conditions at the end of the third and final stage in the Pyrenees.
But further down the road a desperate battle was playing out as Froome's rivals tried to take time out of the Team Sky rider.
|Froome and Thomas absorb body blows|
|Former GB cyclist Rob Hayles: "It was a great ride by Rodriguez to go out so early on the stage and hold on in the conditions. What a race we had in the yellow jersey group. They all gave body blows and tried to isolate Chris Froome. It was Geraint Thomas who played the biggest part for Froome."|
It was as though the other teams were working in concert to try to isolate and expose Froome, with Alejandro Valverde as well as Contador, Nibali and, finally, Quintana all sprinting off the front of the ever-diminishing yellow jersey group.
But Team Sky did not panic and Froome was superbly aided by Richie Porte and, after the Australian fell back, the excellent Geraint Thomas.
Froome at one point tried to attack himself but he was quickly caught and briefly isolated while Thomas hauled his way up the road to rejoin his team leader.
"I was hoping maybe one or two guys might switch off mentally with that acceleration," explained Froome.
"But everybody seemed pretty fresh so at that point I just said 'OK, I'm just going to try to get to the line today in the best condition possible and hopefully not lose any time'."
In the end Valverde did sprint clear close to the line but he only managed to take one second off Froome and remains almost four minutes behind.
After a relatively quiet Wednesday, when the leaders appeared content to catch their breath and let Rafal Majka claim a breakaway victory, it was widely expected that Froome's form would be tested on Thursday.
There were attacks from the start of the day and early disappointment for Movistar's British rider Alex Dowsett, who abandoned shortly after slipping off the back of the main group.
Dowsett had sustained a painful elbow injury after crashing on the cobbles earlier in the race and later said: "Was beaten by the Tour this year. Sad to be heading home, stomach problems in the night was the final nail in the coffin. Will be back."
|Chris Froome remains in yellow and top of the King of the Mountains classification. Peter Sagan retained he green sprinters jersey and Nairo Quintana stays in the white jersey as the Tour's best young rider.|
|Joaquim Rodriguez will wear the polka dot jersey on Friday as he is now second in the KOM standings after leapfrogging Richie Porte.|
A group of 22 riders eventually got clear and built a steady lead that grew to more than 10 minutes.
That lead remained fairly steady for some time, although the size of the group varied as the breakaway made its way along a stage that comprised two category one climbs and one category two before the brutal finish.
World road race champion Kwiatkowski and Sep Vanmarcke eventually broke clear, with the former going out on his own.
But on the slopes of Plateau de Beille Rodriguez showed superb form and determination to catch Kwiatkowski and finish more than a minute clear of Jakob Fuglsang with Frenchman Romain Bardet third.
The Tour moves on from the Pyrenees on Friday, with a 198.5km transitional stage from Muret to Rodez that could end with a sprint finish.
Wonderful wingmen weather the storm
BBC Sport's Matt Slater: "In much the same way that rain can freshen up the dullest of F1 races, the worst weather at this year's Tour helped produce the best action.
"We had great riders in different groups all along the road to the final fearsome climb up to Plateau de Beille and each of those groups provided their own storylines.
"In the end, the stage victory went to Joaquim Rodriguez, his second of a Tour that has seen him give up his long-held ambitions on general classification in favour of a spectacular triumphs of a more one-off nature.
"Most of those who still harbour hopes of taking the yellow jersey from Team Sky's Chris Froome had a more frustrating day as the British star and his wonderful wingmen Richie Porte and Geraint Thomas deflected everything thrown at them.
"Afterwards, by the team cars, there was a distinct sense that the other big names are now fighting each other for podium places."
Stage 12 result
1. Joaquim Rodriguez (Spa) Team Katusha 5hrs 40mins 14secs
2. Jakob Fuglsang (Den) Astana +1min 12secs
3. Romain Bardet (Fra) AG2R La Mondiale +1min 49secs
4. Gorka Insausti (Spa) Movistar +4mins 34secs
5. Louis Meintjes (SA) MTN-Qhubeka +4mins 38secs
6. Jan Barta (Cze) Bora-Argon +5mins 47secs
7. Romain Sicard (Fra) Team Europcar +6mins 3secs
8. Mikael Cherel (Fra) AG2R La Mondiale +6mins 28secs
9. Alejandro Valverde (Spa) Movistar +6mins 46secs
10. Chris Froome (GB) Team Sky +6mins 47secs
General Classification after stage 12
1. Chris Froome (GB) Team Sky 46hrs 50mins 32secs
2. Tejay van Garderen (USA) BMC Racing +2mins 52secs
3. Nairo Quintana (Col) Movistar +3mins 9secs
4. Alejandro Valverde (Spa) Movistar +3mins 58secs
5. Geraint Thomas (GB) Team Sky +4mins 3secs
6. Alberto Contador (Spa) Tinkoff-Saxo +4mins 4secs
7. Robert Gesink (Ned) LottoNL +5mins 32secs
8. Tony Gallopin (Fra) Lotto +7mins 32secs
9. Vincenzo Nibali (Ita) Astana +7mins 47secs
10. Bauke Mollema (Ned) Trek +8mins 2secs