Dylan Groenewegen claimed his first stage win of this year’s Tour de France as Giulio Ciccone retained the leader’s yellow jersey after stage seven.
Defending champion Geraint Thomas finished safely in the peloton to remain fifth overall.
At 230km, stage seven was the longest of this year’s Tour and the flat route set up a thrilling bunch sprint to the finish line in Chalon-sur-Saone.
Caleb Ewan crossed the line in second ahead of Peter Sagan.
Groenewegen, who won two stages at last year’s Tour, timed his lunge for the line perfectly to finish inches ahead of Ewan.
The 26-year-old Dutchman raised his arm in celebration but had to wait for TV replays to confirm victory, his fourth at this race since 2017.
- Bespoke podcast:Stage seven – The Flying Dutchman
- ‘Stage eight suits the Classics specialists’ – Adam Yates’ Tour stage guide
It was an exciting finish after more than six hours of racing, mostly at a sedate pace.
Two French riders, Stephane Rossetto of Cofidis and Yoann Offredo of Wanty-Groupe Gobert, went clear soon after the race started in Belfort and were allowed to stay away until the final 11km.
That left the sprinters to contest the stage win and this time Groenewegen, who was hurt in a crash near the end of stage one, prevailed.
There was no change at the top of the general classification, although Nairo Quintana and Dan Martin both found themselves on the wrong end of a split in the peloton in the final 30km and had to fight to regain contact.
Thomas and the other main contenders had a quiet day after the drama of Thursday’s mountain-top finish in La Planche des Belles Filles that saw the Welshman take time out of all of his rivals.
Saturday sees the race go back into the hills, with a bumpy 200km route from Macon to Saint-Etienne that features almost 3,800 metres of climbing.
In his BBC Sport Tour de France stage-by-stage guide, Mitchelton-Scott’s Adam Yates is backing one-day Classics specialist Greg van Avermaet to take the victory.
Stage six results
1. Dylan Groenewegen (Ned/Team Jumbo – Visma) 6hrs 2mins 44secs
2. Caleb Ewan (Aus/Lotto – Soudal) Same time
3. Peter Sagan (Svk/BORA – hansgrohe) Same time
4. Sonny Colbrelli (Ita/Bahrain – Merida) Same time
5. Jasper Philipsen (Bel/UAE Team Emirates) Same time
6. Elia Viviani (Ita/Deceuninck – Quick-Step) Same time
7. Giacomo Nizzolo (Ita/Team Dimension Data) Same time
8. Jasper Stuyven (Bel/Trek – Segafredo) Same time
9. Michael Matthews (Aus/Team Sunweb) Same time
10. Alexander Kristoff (Nor/UAE Team Emirates) Same time
General classification after stage seven
1. Giulio Ciccone (Ita/Trek-Segafredo) 29hrs 17mins 39secs
2. Julian Alaphilippe (Fra/Deceuninck-Quick Step) +6secs
3. Dylan Teuns (Bel/Bahrain-Merida) +32secs
4. George Bennett (NZ/Jumbo-Visma) +47secs
5. Geraint Thomas (GB/Ineos) +49secs
6. Egan Bernal (Col/Ineos) +53secs
7. Thibaut Pinot (Fra/Groupama-FDJ) +58secs
8. Steven Kruijswijk (Ned/Jumbo-Visma) +1min 04secs
9. Michael Woods (Can/EF Education First) +1min 13secs
10. Rigoberto Uran (Col/EF Education First) +1min 15secs
More to follow.