Peter Sagan secured his first win of this year's Tour de France as he sprinted to victory on stage five.
Rui Costa made a late break on the hilly 175.5km route to Colmar but after he was hauled in Sagan was dominant as he took his 12th Tour stage win.
The Bora-Hansgrohe rider, 29, was followed home by Wout van Aert and Matteo Trentin.
Defending champion Geraint Thomas stays seventh overall, 45 seconds behind race leader Julian Alaphilippe.
Sagan flexed his muscles as he crossed the line in a repeat of his celebration from his first Tour win, in 2012.
The Slovakian also extended his lead in the points category, and now leads Australia's Michel Matthews by 47 points as he bids to win the green jersey for a record seventh time.
His latest stage victory was delivered in typically thrilling fashion at the end of a day that had seen the Tour's sprint specialists dropped by the peloton during four short but steep climbs in the Vosges mountains.
A small breakaway group of four riders was caught on the final ascent, the Cote des Cinq Chateaux, and Costa tried and failed to escape on a short and flat run-in to the finish.
Sagan waited patiently for his chance, and was perfectly placed when the race bunched up with 2km to go.
"I just have to ride with passion and the victory comes," Sagan said. "I have to say thanks to all my team-mates. We controlled all day, on the flat part and towards the finish."
Alaphilippe finished in 10th place and will wear the yellow jersey for a third successive day on Thursday.
Britain's Thomas had an uneventful day, finishing safely in the pack with his co-leader at Ineos, Colombia's Egan Bernal, British compatriot Adam Yates and the other contenders for the general classification.
Thomas told ITV4: "It was nice to get a bit of climbing in the legs and build up for [the first mountain stage on] Thursday."
Asked what he made of his rivals' performance so far, he replied: "It is hard to say really, we will know a lot more after stage six. You can't really tell a lot from the last few days - obviously Alaphilippe is flying up those type of climbs.
"Thursday is a lot different but I think he has certainly shown the form to hang in there and keep the jersey. We will see - it will be interesting. There are a lot of climbs before the last one, so it will be a challenge."
Stage six sees the race stay in the Vosges and features the first summit finish of the 2019 Tour.
The 160.5km route starts at Mulhouse and ends at La Planche des Belles Filles, with a climb that has been extended by an extra kilometre.
In his BBC Sport Tour de France stage-by-stage guide Mitchelton-Scott's Adam Yates is backing himself to take the stage victory.
1. Peter Sagan (Svk/Bora-Hansgrohe) +4hrs 2mins 33secs
2. Wout van Aert (Bel/Jumbo-Visma) Same time
3. Matteo Trentin (Ita/Mitchelton-Scott)
4. Sonny Colbrelli (Ita/Bahrain Merida)
5. Greg van Avermaet (Bel/CCC)
6. Julien Simon (Fra/Cofidis)
7. Michael Matthews (Aus/Sunweb)
8. Nils Politt (Ger/Katusha-Alpecin)
9. Jasper Stuyven (Bel/Trek-Segafredo)
10. Julian Alaphilippe (Fra/Deceuninck-Quick Step)
1. Julian Alaphilippe (Fra/Deceuninck-Quick Step) 18hrs 44mins 12secs
2. Wout van Aert (Bel/Jumbo-Visma) +14secs
3. Steven Kruijswijk (Ned/Jumbo-Visma) +25secs
4. George Bennett (NZ/Jumbo-Visma) Same time
5. Michael Matthews (Aus/Sunweb) +40secs
6. Egan Bernal (Col/Ineos) Same time
7. Geraint Thomas (GB/Ineos) +45secs
8. Enric Mas (Spa/Deceuninck-Quick Step) +46secs
9. Peter Sagan (Svk/Bora-Hansgrohe) +50secs
10. Greg van Avermaet (Bel/CCC) +51secs