Station des Rousses - Frenchman Lilian Calmejane came close to "catastrophe" before winning his maiden Tour de France stage on Saturday.
The 24-year-old suffered cramps over the last four kilometres of the 187.5km eighth stage from Dole to Station des Rouses, but kept his nerve to finish 37 seconds clear of Dutchman Robert Gesink.
"It's huge, I can barely believe it, it's pretty much everything I was dreaming of at the start," said Calmejane, who is riding his first Tour and only second Grand Tour having also won a stage at last year's Vuelta a Espana.
"Last year at the Vuelta I won in a similar manner; it's my first Tour, the eighth stage: a wonderful victory.
"Four kilometres from the end and at the finish I had cramps every time I straightened my leg and I wasn't far away from a catastrophe.
"But today was my day."
The Direct Energie rider also claimed the polkadot king of the mountains jersey for his efforts on the hilly stage, taking it off Italy's Fabio Aru, winner of Wednesday's fifth stage.
After a breakneck start to the stage that saw numerous attacks fail to stay away as a fluid race situation reigned, eventually a group of 46 riders were able to get clear of the peloton before that then splintered.
A group of nine riders made it to the bottom of the first category climb 24km from the finish but by the summit, 12km from the line, Calmejane was alone with only Gesink able to give chase.
Calmejane had a 30-second lead by then and he increased it on the plateau to the finish despite easing up at one point to stretch his legs due to cramp, to win by 37sec.
The Team Sky-led peloton mopped up the remnants of the breakaway as Guillaume Martin took third at 50sec.
But all the top challengers were in that group, meaning there was no change in the standings as Froome maintained his 12sec lead over compatriot and Sky team-mate Geraint Thomas and 14sec to Aru.
Froome had his own scare when he briefly went off piste a little over 50km from the finish but he stayed upright and quickly rejoined the road.
"There was a little moment, there was a righthand bend, myself and my team-mate Geraint Thomas didn't take the right trajectory, but sometimes it's like that," said a smiling Froome on French television.
He had claimed on Friday that Saturday's stage wouldn't see much in the way of a battle amongst the top contenders and it proved the case as the favourites opted to keep the powder dry ahead of Sunday's gruelling mountain stage that includes three hors category climbs.
"I think after today's tough stage, tomorrow (Sunday) will be very, very hard and very selective for the overall contenders," added Froome.
"And definitely there will be riders who gain time and others who lose time."
Sunday's ninth stage is 181.5km long from Nantua with seven categorised climbs, including the three steepest of this year's race, and a technical descent to the finish in Chambery.
1. Lilian Calmejane (FRA/DEN) 4hrs 30min 29sec.
2. Robert Gesink (NED/LNL) 0:37.
3. Guillaume Martin (FRA/AJW) 0:50.
4. Nicolas Roche (IRL/BMC) 0:50.
5. Roman Kreuziger (CZE/ORI) 0:50.
6. Fabio Aru (ITA/AST) 0:50.
7. Michael Valgren (DEN/AST) 0:50.
8. Rafal Majka (POL/BOR) 0:50.
9. Nathan Brown (USA/CAN) 0:50.
10. Romain Hardy (FRA/TFO) 0:50.
11. Carlos Betancur (COL/MOV) 0:50.
12. Louis Meintjes (RSA/EAU) 0:50.
13. Daniel Martin (EIR/QST) 0:50.
14. Emanuel Buchmann (GER/BOR) 0:50.
15. Mikel Landa (ESP/SKY) 0:50.
16. Damiano Caruso (ITA/BMC) 0:50.
17. Richie Porte (AUS/BMC) 0:50.
18. Christopher Froome (GBR/SKY) 0:50.
19. George Bennett (NZL/LNL) 0:50.
20. Nairo Quintana (COL/MOV) 0:50.
1. Christopher Froome (GBR/Sky) 33hrs 19min 10sec.
2. Geraint Thomas (GBR/SKY) at 0:12.
3. Fabio Aru (ITA/AST) 0:14.
4. Daniel Martin (IRL/QST) 0:25.
5. Richie Porte (AUS/BMC) 0:39.
6. Simon Yates (GBR/ORI) 0:43.
7. Romain Bardet (FRA/ALM) 0:47.
8. Alberto Contador (ESP/TRE) 0:52.
9. Nairo Quintana (COL/MOV) 0:54.
10. Rafal Majka (POL/BOR) 1:01.