The Bora-Hansgrohe’s rider beat Italian Sonny Colbrelli (Bahrain-Merida) and Belgian Philippe Gilbert (Quick-Step Floors) in the sprint after a 204km stage from Lorient to increase his lead in the points classification.
As the peloton entered the final kilometre, Gilbert was first to show his hand when he attacked on the steep final climb, but he was closely marked and his effort was quickly neutralised.
Belgian Greg van Avermaet (BMC) led out the sprint when the road flattened about 400m from the end, but he faded to seventh in the final metres as the world champion and Colbrelli went head-to-head for the second time this week.
“It was a little bit lucky because Colbrelli was coming close,” said Sagan, who was also run close by the Italian on stage two.
“My teammates did a very good job; from the middle of the stage they were pulling in the front. They brought me into a good position for the final climb, and Sky started to go full gas.”
He added that Gilbert came over them on the climb before he was hauled back and Van Avermaet went.
“I think that Van Avermaet started too early and in the end he pulled a very good sprint for me and Colbrelli.”
Van Avermaet leads the overall standings by two seconds over teammate Tejay van Garderen and three over Gilbert.
Latvia’s Toms Skujins (Trek-Segafredo) took over the polka dot jersey from Dion Smith (Wanty-Groupe Gobert) with Denmark’s Soren Kragh Andersen (Sunweb) retaining the lead in the young rider competition.
Daryl Impey (Mitchelton-Scott) was the fastest South African to finish today’s stage and is the highest ranked in the general classification.