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 and 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 the pouring rain 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.

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.

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.

More to follow.

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