Joaquim Rodriguez (Katusha) soloed to victory on the rain-battered Plateau de Beille to claim his second stage win of this year’s race.
Purito was in the large breakaway which formed before the climbing began, and accelerated away on the final hors categorie climb to catch early escapee Michal Kwiatkowski, the world champion, and ride away to stage success.
As storms and heavy rain battered the mountains, Chris Froome (Team Sky), in the yellow jersey, finished safely in the GC group to ensure he leaves the first mountain stages of this year’s race with his big overall lead in tact.
The race stayed together up until the intermediate sprint, with Lotto-Soudal setting the tempo and being rewarded when Andre Greipel sprinted to maximum points.
With Giant-Alpecin’s John Degenkolb separating Greipel and green jersey Peter Sagan (Tinkoff-Saxo), it means the Gorilla is now just two points behind in the points classification.
Once the sprint had been contested, at 20km, the day’s break formed immediately, with Lieuwe Westra (Astana) and Bryan Coquard (Team Europcar) the first to go.
A huge group joined them up the road, with Rodriguez, Kwiatkowski, Romain Bardet (Ag2r-La Mondiale), Jakob Fuglsang (Astana) and Louis Meintjes (MTN-Qhubeka) the best climbers in the group.
Their advantage was allowed to go well out, with the Team Sky-led peloton showing no desire to chase them down.
Despite the slow pace, Alex Dowsett (Movistar) and Zak Dempster (Bora-Argon 18), who have nursed injuries for much of the race, both climbed off and abandoned.
Sep Vanmarcke (LottoNL-Jumbo), Georg Preidler (Giant-Alpecin) and Kwiatkowski were first to attack at the front, with the 19 other escapees initially reluctant to chase and help their rivals get back to the front.
Meintjes took a tumble as the weather turned and the roads got slick, but returned to the chasing group, which was thinned by the climbs.
Priedler cracked first at the front, meanwhile, before Kwiatkowski also distanced Vanmarcke – the counter-attacks starting behind him at around the same time.
Rodriguez bridged the gap on the Plateau de Beille, with Bardet and Fuglsang in tow, and passed Kwiatkowski at pace.
Further back, British champion Peter Kennaugh (Team Sky) set the tempo in the peloton, which was also thinned dramatically – Warren Barguil (Giant-Alpecin) and Tony Gallopin (Lotto-Soudal) the GC men to lose out.
Richie Porte took over on the front, after a brief injection of pace from stage 11 winner Rafal Majka (Tinkoff-Saxo), but the attacks soon started – Alberto Contador the first to try his luck.
The next to have a go was Vincenzo Nibali (Astana), before Alejandro Valverde (Movistar) kicked – Porte shutting him down and bringing the Italian back too in the process.
Up the road Rodriguez opened up a big gap on his nearest chaser, Fuglsang, as they both closed in on the rain-battered summit, but the pain was visibly setting in.
Porte’s drive on the front of the peloton finally came to an end, meanwhile, when he was unable to match an attack by white jersey Nairo Quintana (Movistar) – Geraint Thomas taking over to reel the Colombian back in.
Froome attacked with 4km remaining to briefly split the front group up, but – after a double attack from Valverde and Quintana in response, Thomas got back in and regained control on the front.
As Rodriguez was roaring in delight up the road, saluting the crowd as he bagged victory, the attacks kept coming further back – Quintana again causing a split before it came back together.
Fuglsang was next to finish, meanwhile, followed by Bardet as Thomas and Froome again took control of the pace in the yellow jersey group.
Despite the pace going up, there was no further movement in that group though, aside from Valverde kicking to the line to gain a second, as Sky celebrated a job well done too.
Tour de France 2015: stage 12 – result
1) Joaquim Rodriguez (ESP) – Katusha – 5.40.14hrs
2) Jakob Fuglsang (DEN) – Astana +1.12
3) Romain Bardet (FRA) – Ag2r-La Mondiale +1.49
4) Gorka Izaguirre (ESP) – Movistar +4.34
5) Louis Meitjes (RSA) – MTN-Qhubeka +4.38
6) Jan Barta (CZE) – Bora-Argon 18 +5.47
7) Romain Sicard (FRA) – Europcar +6.03
8) Mikael Cherel (FRA) – Ag2r-La Mondiale +6.28
9) Alejandro Valverde (ESP) – Movistar +6.46
10) Chris Froome (GBR) – Team Sky +6.47
General classification
1) Chris Froome (GBR) – Team Sky – 46.50.32hrs
2) Tejay van Garderen (USA) – BMC Racing +2.52
3) Nairo Quintana (COL) – Movistar +3.09
4) Alejandro Valverde (ESP) – Movistar +3.58
5) Geraint Thomas (GBR) – Team Sky +4.03
6) Alberto Contador (ESP) – Tinkoff-Saxo +4.04
7) Robert Gesink (NED) – LottoNL-Jumbo +5.32
8) Tony Gallopin (FRA) – Lotto-Soudal +7.32
9) Vincenzo Nibali (ITA) – Astana +7.47
10) Bauke Mollema (NED) – Trek Factory Racing +8.02