Romain Bardet (Ag2r La Mondiale) took the home nation’s first win on stage 19 of the Tour de France, moving up to second overall in a dramatic stage to Saint-Gervais Mont Blanc.
Yellow jersey holder Chris Froome crashed in the rain, ripping his jersey and shorts, and was forced to ride the final climb on Geraint Thomas’s bike, but only lost 10 seconds as attacks came from all angles.
Nairo Quintana (Movistar) finally found his climbing legs and made up some vital time, while Richie Porte (BMC) paid for his attacks lower down the final climb and crossed the line 17 seconds down on Froome.
Earlier in the day, Astana broke up the monotony of the past dozen stages by taking over the pace-setting duties from Team Sky, upping the pace at the front and causing some good climbers out the back of the peloton.
When the rain started falling in the final 50km the crashes started coming with regularity. Pierre Rolland (Cannondale) came down hard on a descent and struggled to get back on his bike, while Porte was left with a fight to rejoin the peloton after a tumble on the wet roads.
Up ahead, Rui Costa (Lampre-Merida) was waging a lone battle with the road, with several attempts to bridge to him by his fellow breakaway riders foiled soon after they started.
Froome even came a cropper on the newly laid smooth tarmac, slipping out on a corner and hitting the ground. The yellow jersey holder was forced to take the bike of Thomas to get back on the road.
Bardet had already moved out the front of the peloton when Froome when down and quickly gained nearly a minute by the foot of the final ascent.
Watch: Tour de France 2016 stage 19 highlights
The Frenchman moved up to Costa with just under 8km to go and sat with the 2013 world champion on his wheel as Astana continued to drive the pace on the chase group, which reduced to 40 seconds by the 5km mark.
BMC attacked with 4km to go for Porte, with Froome struggling to keep the wheel. Quintana also moved around the yellow jersey to try and gain an advantage, but Froome maintained his composure and narrowed the gap.
Dan Martin (Etixx-Quick Step) burst off the front in search of a stage win, but up the road Bardet had finally dropped Costa and charged towards the summit.
Porte again upped the pace, with Quintana easing up to him, but the pace was not high enough to see off Froome with two Sky riders moving around to the front of the group to bring things under control once more.
The pace was too much for Adam Yates (Orica-BikeExchange), though, with the white jersey holder slipping out the back of the peloton with just 3km and struggling to get back
Martin was caught by Joaquim Rodriguez (Katusha) and the rest of the favourites group and Froome came to the head of affairs to try and deter any more attacks.
Porte and Quintana tried again, though, but it was Fabio Aru (Astana) who gained the bigger advantage before Alejandro Valverde and Quintana came to the fore for Movistar.
Froome eventually dropped just 10 seconds to Quintana, but Porte finished 17 seconds further back. Yates battled to 13th position but lost his podium place to Quintana, with Bauke Mollema (Trek-Segafredo) dropping from second to 10th after struggling on the final ascent.
Another vicious mountain day awaits on Saturday, with the climb of the Col de Joux Plane and the descent into Morzine likely to play a crucial role in deciding the final podium.
Tour de France stage 19, Albertville – Saint-Gervais Mont Blanc (146km)
1. Romain Bardet (Fra) Ag2r La Mondiale, 4-14-08
2. Joaquim Rodriguez (Esp) Katusha, at 23s
3. Alejandro Valverde (Esp) Movistar, st
4. Louis Meintjes (RSA) Lampre-Merida, st
5. Nairo Quintana (Col) Movistar, at 26s
6. Fabio Aru (Ita) Astana, at 28s
7. Dan Martin (Irl) Etixx-Quick Step, st
8. Wout Poels (Ned) Team Sky, at 36s
9. Chris Froome (GBr) Team Sky, st
10. Richie Porte (Aus) BMC, at 53s
Overall standings after stage 19
1. Chris Froome (GBr) Team Sky, 82-10-37
2. Romain Bardet (Fra) Ag2r La Mondiale, at 4-11
3. Nairo Quintana (Col) Movistar, at 4-27
4. Adam Yates (GBr) Orica-BikeExchange, at 4-36
5. Richie Porte (Aus) BMC, at 5-17
6. Fabio Aru (Ita) Astana, at 6-00
7. Alejandro Valverde (Esp) Movistar, at 6-20
8. Louis Meintjes (RSA) Lampre-Merida, at 7-02
9. Dan Martin (Irl) Etixx-Quick Step, at 7-10
10. Bauke Mollema (Ned) Trek-Segafredo, at 7-42