Last updated on .From the section Cycling

Calmejane battled cramp in the final 5km to win his second Grand Tour stage

Tour de France: 1-23 July Coverage: Live text commentary of every stage on the BBC Sport website. BBC Radio coverage on 5 live sports extra and/or website from 14:30 BST on every stage.

Britain's Chris Froome retained the race leader's yellow jersey as Frenchman Lilian Calmejane won stage eight of the Tour de France.

Direct Energie rider Calmejane claimed the biggest win of his career despite cramping late on after launching a late break at the end of the 187.5km stage.

The 24-year-old, competing in his first Tour de France, finished 37 seconds ahead of Dutchman Robert Gesink.

Ireland's Nicolas Roche was fourth, 50 seconds adrift of Calmejane.

He not only becomes the first French debutant to win a Tour stage since Thibaut Pinot in 2012, but moves to the top of the King of the Mountains competition, taking the polka dot jersey from Italian rider Fabio Aru.

"It's huge. It was everything I was dreaming of," said Calmejane, who also won a stage on his Vuelta a Espana debut in 2016.

"When I had cramp in the finale, I decided to drop a gear so I could pedal softer."

'A tough and intense day'

Team Sky's Froome, who moved into the race lead on stage five, said he "was not expecting the stage to be quite as intense" but praised his team-mates for helping keep him in the yellow jersey.

A breakaway victory had been predicted and the opening 60km of the stage saw relentless attacking as a succession of riders tried to race clear.

Before the stage, British national champion Steve Cummings had hinted that he would try and get in the break, but the Dimension Data rider was unable to do so.

A large group of 50 riders eventually managed to open up a gap but attacks continued within that selection.

Eventually, a group of eight led up the final 11.7km before Calmejane went clear on the ascent and rode 12km from the summit across a plateau to become the second French winner on this year's race.

Arnaud Demare, the French national champion who won stage four and is second in the green points jersey classification, was in danger of missing the time cut after being dropped early on but finished 37 minutes, 33 seconds back, alongside Team Sky's Luke Rowe, and will ride on.

Froome (in yellow) riding with fellow general classification contenders Richie Porte (far left) and Nairo Quintana (middle)

"That was a tough day," said Froome. "Especially with Sunday's decisive day to come."

The threat to the yellow jersey was evident as soon as the break went clear and Froome added: "It was tactically an interesting stage.

"A lot of guys in the break were a threat in the general classification so we went with the plan of putting Sergio Henao, Christian Knees and Mikel Landa in the break but even though we had guys in there we couldn't give it any room."

In the end, the pace set by Team Sky up the final ascent on Montee de la Combe de Laisia les Molunes was enough to stop any further attacks and catch most of those in the break as the general classification riders such as Richie Porte, Alberto Contador, Aru, Nairo Quintana and Simon Yates all finished together.

Froome continues to lead Team Sky team-mate and fellow Briton Geraint Thomas by 12 seconds, with Aru third, two seconds further adrift.

Yates remains sixth, 43 seconds back to retain the lead in the white jersey classification as the fastest rider under the age of 26.

'Sunday will be decisive'

Stage nine, the last before the first rest day of the 21-stage race, features seven categorised climbs, including three 'hors categorie' - the hardest of all mountain ascents.

And Froome expects it to "be a really decisive day for the main general classification riders".

He added: "We are going to see aggressive racing and gaps are going to open up.

"The descent to the finish in Chambery is difficult."

Stage eight result:

1. Lilian Calmejane (Fra/Direct Energie) 4hrs 30mins 29secs

2. Robert Gesink (Ned/LottoNL) +37secs

3. Guillaume Martin (Fra/Wanty) +50secs

4. Nicolas Roche (Ire/BMC Racing) Same time

5. Roman Kreuziger (Cze/Orica)

6. Fabio Aru (Ita/Astana)

7. Michael Valgren (Den/Astana)

8. Rafal Majka (Pol/Bora)

9. Nathan Brown (US/Cannondale)

10. Romain Hardy (Fra/Fortuneo)

General classification after stage eight:

1. Chris Froome (GB/Team Sky) 33hrs 19mins 10secs

2. Geraint Thomas (GB/Team Sky) +12secs

3. Fabio Aru (Ita/Astana) +14secs

4. Daniel Martin (Ire/Quick-Step) +25secs

5. Richie Porte (Aus/BMC Racing) +39secs

6. Simon Yates (GB/Orica) +43secs

7. Romain Bardet (Fra/AG2R) +47secs

8. Alberto Contador (Spa/Trek) +52secs

9. Nairo Quintana (Col/Movistar) +54secs

10. Rafal Majka (Pol/Bora) +1min 01secs