Elia Viviani's clinched stage four on the streets of Nancy, beating Alexander Kristoff, Caleb Ewan, Peter Sagan and Dylan Groenewegen in a fiercely contested sprint finish.
His Quick-Step teammate Julian Alaphilippe kept hold of the yellow jersey while it was a relatively quiet day for the general classification contenders, who navigated a tricky and technical finish without incident.
The day was led almost entirely by a three-man breakaway but they were caught in the final throes and Viviani's team-mates set him up perfectly to attack the line.
Wednesday's stage five will see a far more challenging route with a hilly profile that will require one of the punchier riders to conquer it.
Watch the video above to see the day's video highlights and take a look below at the race standings after stage four.
Standings
General classification (yellow jersey)
1. Julian Alaphilippe (Deceuninck Quick-Step) 14hr 41min 39sec
2. Wout van Aert (Jumbo-Visma) +0.20
3. Steven Kruijswijk (Jumbo-Visma) +0.25
4. George Bennett (Jumbo-Visma) +0.25
5. Michael Matthews (Sunweb) +0.40
6. Egan Bernal (Ineos) +0.40
7. Geraint Thomas (Ineos) +0.45
8. Enric Mas (Deceuninck Quick-Step) +0.46
9. Greg van Avermaet (CCC) +0.51
10. Wilco Kelderman (Sunweb) +0.51
Sprint points (green jersey)
1. Peter Sagan (Bora-Hansgrohe) 104 points
2. Elia Viviani (Deceuninck Quick-Step) 81
3. Michael Matthews (Sunweb) 75
King of the Mountains (polka dot jersey)
1. Tim Wellens (Lotto-Soudal) 7 points
2. Xandro Meurisse (Wanty) 3
3. Greg van Avermaet (CCC) 2
Young rider (white jersey)
1. Wout van Aert (Jumbo-Visma) 14hr 41min 59sec
2. Egan Bernal (Ineos) +0.20
3. Enric Mas (Deceuninck Quick-Step) +0.26