Wout van Aert won stage seven of the Tour de France in a sprint finish as Britain's Adam Yates retained the leader's yellow jersey.
The Belgian, who also won stage five, got the better of his sprint rivals at the end of a blustery 168km ride from Millau to Lavaur.
The Jumbo-Visma rider edged out Norway's Edvald Boasson Hagen and Frenchman Bryan Coquard.
Mitchelton-Scott's Yates was ninth and stays at the head of the standings.
An eventful stage had started with Bora-Hansgrohe setting a punishing early pace on the first categorised climb of the day up the Cote de Luzencon, to scatter the peloton.
And while that succeeded in helping Slovakia's Peter Sagan reclaim the green jersey from Ireland's Sam Bennett, it also ensured a thrilling finale to the stage.
With a number of the sprint favourites distanced the battle at the top of the general classification developed over the last 40km when crosswinds caused splits in the leading group.
Tadej Pogacar and Mikel Landa both lost over a minute though Yates survived a potentially dangerous moment on the outskirts of Castres to bridge across as Ineos Grenadiers upped the tempo at the front.
"We were expecting an easy day today but Bora had other ideas," Yates said.
"We rode full gas from start to finish, it was a hard day for everybody. I wasn't too anxious really, just a few moments where you had to be in position because of the wind.
"It was not too crazy but enough to split the bunch, so you had to be in position."
'It was always hectic'
One rider who always appears to be well placed is Van Aert, whose primary assignment was to act as a chaperone to team-mates Primoz Roglic and Tom Dumoulin.
The 25-year-old has already exhibited his climbing and sprinting credentials in this edition of the race and timed his final effort to perfection to pip Boasson Hagen on the line.
"I'm really proud of it," Van Aert said. "It was straight from the gun really hard. It was a very impressive stage from Bora-Hansgrohe, they were flat out from the first kilometre and made sure a lot of the sprinters were dropped.
"It was always hectic because everyone feared the crosswinds. At the end we saw it was worth it to put a lot of energy into the positioning. I was with Primoz the whole day in the front so it was a good day for the team.
"A lot of the GC favourites lost time and I could finish it off as well."
While Ineos' Richard Carapaz dropped off the leading group with a puncture, his team-mate and defending champion Egan Bernal was also a beneficiary of the late drama, taking the white jersey for the best young rider from Pogacar.
"In the finale, we saw the opportunity and we took advantage of it to split the bunch," said Bernal.
"The Tour de France is also won in stages like this one, you have to use all terrains. My team did a perfect job."
The race now moves on to the Pyrenees on Saturday with the 141km rollercoaster route from Cazeres-sur-Garonne to Loudenvielle.
Stage seven results
1. Wout van Aert (Bel/Jumbo Visma) 3hrs 32mins 03secs
2. Edvald Boasson Hagen (Nor/NTT Pro Cycling) Same time
3. Bryan Coquard (Fra/B&B Hotels-Vital Concept)
4. Christophe Laporte (Fra/Cofidis)
5. Jasper Stuyen (Bel/Trek-Segafredo)
6. Clement Venturini (Fra/AG2R-La Mondiale)
7. Hugo Hofstetter (Fra/Israel Start-Up Nation)
8. Egan Bernal (Col/Ineos Grenadiers)
9. Adam Yates (GB/Mitchelton-Scott)
10. Alejandro Valverde (Spa/Movistar)
General classification after stage seven
1. Adam Yates (GB/Mitchelton-Scott) 30hrs 36mins 00secs
2. Primoz Roglic (Slo/Jumbo-Visma) +3secs
3. Guillaume Martin (Fra/Cofidis) +9secs
4. Egan Bernal (Col/Ineos Grenadiers) +13secs
5. Tom Dumoulin (Ned/Jumbo-Visma) Same time
6. Nairo Quintana (Col/Arkea-Samsic)
7. Romain Bardet (Fra/AG2R-La Mondiale)
8. Miguel Angel Lopez (Col/Astana)
9. Thibaut Pinot (Fra/Groupama-FDJ)
10. Rigoberto Uran (Col/EF Pro Cycling)
- Britpop Top 50: Which tracks defined the era?
- Secret Life of Teachers: What do they really think about the return to school?