Sagan had timed his move well coming to the front of the bunch with just 200m to go, however a mechanical saw his right foot come free from his pedals. The world champion had was able clip back in quickly enough though and push on.
It was a close affair in the end with Team Sunweb’s Michael Matthews just half a bike’s length behind as the pair crossed the line.
Dan Martin (Quick-Step Floors) finished third and gained valuable bonus seconds on his yellow jersey rivals.
As the race approached the tough climb towards the finish, Bora-Hansgrohe and BMC pushed the pace hoping to the get their riders into position but as the roads started to file down in width, it soon became clear that the finish would be chaotic.
With Richie Porte leading out Olympic champ Van Avermaet, and Peter Sagan seemingly stuck behind a bunch of rivals, it wasn’t clear who was going to win.
However, Sagan’s superb bike riding soon saw him out in front of everyone, looking back.
Disaster struck soon after when he started his sprint and his right foot unclipped. The drama added to what should’ve been a simple win for the Slovakian but Sagan remained calm and held on even as Michael Matthews launched an almost perfect counter attack.
Despite winning, Sagan didn’t take the green jersey which remained with Marcel Kittel (Quick-Step Floors).
How it happened
An early breakaway saw six riders force a gap after only 13km in to the stage.
Consisting of Nils Politt (Katusha-Alpecin), Adam Hansen (Lotto-Soudal), Romain Hardy (Fortuneo-Oscaro), Nathan Brown (Cannondale-Drapac), Frederik Backaert (Wanty-Groupe Gobert) and Romain Sicard (Direct Energie), the breakaway was always going to find it hard to stay away after forming so early on.
Brown was the first the across the first categorised climb of the day as his breakaway companions looked to undo his team-mate Taylor Phinney’s work from the day prior and rid him of the polka dot jersey.
Building their lead to just under two minutes, the group worked well with a good mix of experience and youth in the shape of Adam Hansen, who is riding his 18th consecutive Grand Tour in seven years, and Nils Politt who is racing his debut Grand Tour.
The day’s stage saw the peloton pass through three countries as they departed from Verviers in Belgium before heading through Luxembourg before finishing 212.5km later in Longwy, France.
Politt took the day’s intermediate sprint as Mark Cavendish continued on the road to recovery sprinting ahead of his rivals as he took the majority of the points that were left for the peloton 1-50 later.
As the bunch decided to up the pace slightly, Politt was active once more beating Backaert to the day’s second KOM.
Not long after, Politt and fellow KOM challenger, Brown, found themselves fighting to get away in their hunt for the polka dot jersey as they looked to take the following five points that were on offer.
Building a gap of 2-52 against the peloton and 30 against the original breakaway group, Politt and Brown found themselves chatting about that mountains classification, complete with a few cat and mouse tactics thrown in.
Fearing Politt’s sprinting prowess, Brown found himself push on and dropping the German in the closing kilometers towards the day’s third KOM.
Brown’s efforts found himself sitting pretty in the virtual polka dot jersey and nearly four minutes ahead of the peloton with 90km to go.
Chris Froome and the rest of the GC contenders spent the majority of the day within the safety of the peloton as team-mate Geraint Thomas held on to the race lead in what was a straightforward day.
Dropping back into the original breakaway group, both Brown and Politt turned their attention to making it to the next climb in one piece as the gap had dropped from 3-57 to 2-33.
As the race crept on with just under 70km to go, the breakaway found their lead starting to drop again with a slender lead of 1-24 all that was between them and the chasing peloton.
It wasn’t long before the cracks in the breakaway began to show as the pair started to splinter. Their lead dropped to just 1-05 with 62km to go as the potential puncheur stage winners decided to get their teams into the shape before the last two categorised climbs of the day.
As the race ticked down to 59km to go, Thomas de Gendt (Lotto-Soudal) found himself working with Lilian Calméjane (Direct Energie) and Pierre-Louis Périchon (Fortuneo) to try and bridge the gap to the front of the race.
As the road started to rise once more, the riders ahead saw their lead drop to 46 seconds as they started to lose their grip on the stage.
De Gendt, who had won a stage at the Critérium du Dauphiné and held the yellow jersey thanks to his breakaway skills, found himself into position for a potential stage win.
Just 15km later De Gendt and his two fellow counter attackers pushed on causing concern to the stage hopefuls in the peloton.
At the other end of the race Romain Bardet (AG2R) found himself chasing the peloton after coming off his bike. With 34km to go, the Frenchman had to be ushered back into the bunch but after suffering his second crash in as many days, he didn’t look confident.
As the race entered France the peloton found Sagan and Van Avermaet organise their teams to the front.
The peloton still sat 1-30 behind the foursome up the road with 28km to go but De Gendt and co seemed to be fresh after spending a lot of the day in the peloton.
However, that freshness soon faltered as the group found themselves battling themselves headwind to as they made it to within just 20km of the finish line.
The group soon splintered with Calmejane on his own at the front, holding a mere minute lead against the rapidly hastening peloton.
A surprise win wasn’t to be as the young Frenchman was swallowed up with just 10km to go.
As the peloton approached the final climb and home stretch of the day, the front of the peloton became a frenzy of jockeying for position.
Moving to the front with just 200m to Sagan found one of his feet unclipped causing his rivals to gain valuable seconds on him but in true world champion style he clipped back and powered his way to the victory.
The Tour de France continues with stage four on Tuesday, a 207.5km flat stage from Mondorf les Bains – Vittel.
Tour de France 2017 stage three, Verviers – Longwy (212.5km)
1 Peter Sagan (Svk) Bora-Hansgrohe, in 5-07-19
2 Michael Matthews (Aus) Team Sunweb, at the same time
3 Daniel Martin (Irl) Quick-Step Floors, st
4 Greg Van Avermaet (Bel) BMC Racing Team, st
5 Alberto Bettiol (Ita) Cannondale-Drapac, at 2 seconds
6 Arnaud Demare (Fra) FDJ
7 Jakob Fuglsang (Den) Astana Pro Team
8 Geraint Thomas (GBr) Team Sky
9 Christopher Froome (GBr) Team Sky
10 Rafal Majka (Pol) Bora-Hansgrohe, all at the same time
General classification after stage three
1 Geraint Thomas (GBr) Team Sky, in 10-00-31
2 Christopher Froome (GBr) Team Sky, at 12 seconds
3 Michael Matthews (Aus) Team Sunweb, at same time
4 Peter Sagan (Svk) Bora-Hansgrohe, at 13s
5 Edvald Boasson Hagen (Nor) Dimension Data, at 16s
6 Pierre Roger Latour (Fra) AG2R La Mondiale, at 25s
7 Philippe Gilbert (Bel) Quick-Step Floors, at 30s
8 Michal Kwiatkowski (Pol) Team Sky, at 32s
9 Tim Wellens (Bel) Lotto Soudal, st
10 Nikias Arndt (Ger) Team Sunweb, at 34s