The closing kilometres of the day were ruined by a succession of crashes, which saw Primož Roglič (Jumbo-Visma) go down nine kilometres out and lose over 1:21 at the finish.
Another crash hit the middle of the peloton four kilometres out, with Tadej Pogačar (UAE Team Emirates) held up as numerous riders hit the ground, while the sprint for the line saw Caleb Ewan (Lotto Soudal) touch wheels with Merlier, causing him and Peter Sagan (Bora-Hansgrohe) to crash hard inside the final 150 metres.
Merlier sprinted to victory unhindered after a stellar Alpecin-Fenix lead-out, with his teammate Jasper Philipsen taking second place ahead of Nacer Bouhanni (Arkéa-Samsic). Race leader Mathieu van der Poel (Alpecin-Fenix), finished safely in the front group to retain the yellow jersey.
"I'm living a dream, I think. After the Giro, I was already very happy, but now to win a stage at the Tour, the biggest race in the world. I can't believe it," Merlier said after the finish.
"Mathieu said he was going to do the lead-out, and I said, 'you are crazy' but he loves to do it, so then Jasper Philipsen took over for the last 700 metres. It was a great lead-out and I just needed to go the last 150 metres. I looked back and I couldn't believe it, there was nobody else on my wheel. There was a crash, and so that would be the reason, I think.
"I can't believe this, it's a dream," he concluded.
As a result of the crashes, only Richard Carapaz (Ineos Grenadiers) and Julian Alaphilippe (Deceuninck-QuickStep) managed to avoid losing time among the GC men, with groups of riders coming home at 14 seconds and 26 seconds – the latter group including Tadej Pogačar (UAE Team Emirates) and Geraint Thomas (Ineos Grenadiers).
How it unfolded
Stage 3 of the Tour de France took the peloton 182.9 kilometres across southern Brittany from Lorient to Pontivy, giving the sprinters their first opportunity to shine in the race.
A largely flat opening third of the stage gave way to more rolling roads to the finish, though little to trouble any of the sprint contenders. Two category-four climbs lay on the route, the Côte de Cadoudal after 91 kilometres and the Côte de Pluméliaeu after 148 kilometres.
Ide Schelling (Bora-Hansgrohe) was an unsurprising early attacker, having been out in the break on the first two days of the race. The German, wearing polka dots as mountain classification leader Mathieu van der Poel held the maillot jaune, was looking to retake the polka dot jersey.
He was joined out front by two men from Breton team B&B Hotels p/b KTM in Cyril Barthe and Maxime Chevalier, plus Cofidis' Jelle Wallays, and AG2R Citroënman Michael Schär.
With the road behind them blocked at the head of the peloton, the five riders were allowed to ride off, cementing the break of the stage. Shortly afterwards, Lotto Soudal and Groupama-FDJ set to work on the front of the peloton to limit the gap on behalf of their sprinters, Caleb Ewan and Arnaud Démare.
The break's advantage was held in the 2:30 to three-minute mark by the teams, though Mark Cavendish's Deceuninck-QuickStep and Van der Poel's Alpecin-Fenix squads were not present at the front at that point.
A fairly standard sprint stage formula looked to be playing out, with dozens of quiet kilometres lying ahead. However, that was punctured by another crash at the front of the peloton following the carnage of the opening day.
Ineos Grenadiers co-leader Geraint Thomas went down after 37 kilometres following a touch of wheels, while Jumbo-Visma domestique Robert Gesink was left with nowhere to go and ploughed into the Welshman, somersaulting to the floor.
Thomas looked in trouble as he clutched his collarbone/shoulder area, but it emerged that he had dislocated his shoulder rather than broken any bones, and he was able to continue, catching back on with 125 kilometres to go. For Gesink, meanwhile, it was a less happy ending as he was forced to abandon the Tour due to his injuries.
20 kilometres later, the rain that hit at around the time of the crash stopped, and the break passed into the final 100 kilometres towards the Côte de Cadoudal with an advantage of 2:30 on the peloton.
Schelling went on the move on the climb, and he was given no contest by his breakmates as he picked up another point to go equal top in the KOM standings. Little action came in the following kilometres, barring a crash for Qhubeka NextHash riders Sean Bennett and Nic Dlamini, though the work in the peloton brought the gap down to 1:30 by the intermediate sprint after 118 kilometres.
Barthe led the break though, but the real interest lay in the sprinters back in the peloton. Bahrain Victorious, Lotto Soudal and Deceuninck-QuickStep put together lead outs for Sonny Colbrelli, Ewan and Cavendish, with the Australian just shading it ahead of the Manxman at the line.
The riders just behind were neck and neck too, and the final result saw 11 points going to Ewan, 10 to Cavendish, eight to Colbrelli, seven to Démare, six to Peter Sagan, and five to Michael Matthews.
All that stood between the riders and the final sprint at that point was the second climb of the Côte de Pluméliaeu, 34 kilometres out from the finish. With Schelling no longer in the break by that point, there was no tension on the hill as Wallays led the remaining breakaway riders over the top.
Back in the peloton, the sprint and GC teams had fully taken charge of proceedings, with Jumbo-Visma, Deceuninck-QuickStep, Ineos Grenadiers and Bahrain Victorious all working at the front as the stage reached its final kilometres.
Team DSM, Groupama-FDJ and Alpecin-Fenix also moved up as the riders reached the final 10 kilometres, as the remains of the break were reabsorbed. But at the 10-kilometre mark, a spate of crashes hit the peloton.
The first of the two spills saw Groupama-FDJ rider Valentin Madouas caught up along with Movistar's Miguel Ángel López, while Jumbo-Visma GC favourite Primož Roglič came a cropper a kilometre later, shredding his jersey and shorts as he hit the ground.
The majority of the Dutch squad waited back for Roglič, attempting to bring him back across what was then a one-minute gap to the reduced peloton. Up front, the break was caught, but the situation looked grim for the Slovenian with five kilometres to run.
A technical final run-in lay ahead, including tight turns on and off a bridge just outside the two-kilometre mark and a near-hairpin at 1.5 kilometre out. Before the riders could reach those difficulties, however, there was another crash at four kilometres to go, with half a dozen riders – at least – going down.
Yellow jersey man Van der Poel hit the front for the final two kilometres – with Roglič still a minute down, working for his sprinter Tim Merlier. The Alpecin-Fenix lead-out took over in the final kilometre.
The Belgian squad played it to perfection, depositing Merlier on the front in the final 150 metres, but just behind there was yet more carnage as Ewan hit the ground after touching his wheel. Sagan had nowhere to go and went down too, while Bouhanni avoided the crash to take third place.
|Pos.||Rider Name (Country) Team||Result|
|1||Tim Merlier (Bel) Alpecin-Fenix||4:01:28|
|2||Jasper Philipsen (Bel) Alpecin-Fenix|
|3||Nacer Bouhanni (Fra) Team Arkea-Samsic|
|4||Davide Ballerini (Ita) Deceuninck-QuickStep|
|5||Sonny Colbrelli (Ita) Bahrain Victorious|
|6||Julian Alaphilippe (Fra) Deceuninck-QuickStep|
|7||Mathieu van der Poel (Ned) Alpecin-Fenix|
|8||Cees Bol (Ned) Team DSM|
|9||Anthony Turgis (Fra) TotalEnergies|
|10||Maximilian Walscheid (Ger) Qhubeka-NextHash|
|11||Matej Mohoric (Slo) Bahrain Victorious|
|12||Miles Scotson (Aus) Groupama-FDJ|
|13||Richard Carapaz (Ecu) Ineos Grenadiers|
|14||Søren Kragh Andersen (Den) Team DSM|
|15||Wout Van Aert (Bel) Jumbo-Visma|
|16||Jonas Rickaert (Bel) Alpecin-Fenix|
|17||Nils Eekhoff (Ned) Team DSM|
|18||Michael Matthews (Aus) Team BikeExchange||0:00:14|
|19||Enric Mas Nicolau (Spa) Movistar Team|
|20||Boy van Poppel (Ned) Intermarché-Wanty-Gobert Matériaux|
|21||Vincenzo Nibali (Ita) Trek-Segafredo|
|22||Jakob Fuglsang (Den) Astana-Premier Tech|
|23||Guillaume Boivin (Can) Israel Start-up Nation|
|24||Fabien Doubey (Fra) TotalEnergies|
|25||Nairo Quintana (Col) Team Arkea-Samsic|
|26||Wilco Kelderman (Ned) Bora-Hansgrohe|
|27||Pierre Latour (Fra) TotalEnergies|
|28||Victor Campenaerts (Bel) Qhubeka-NextHash|
|29||Sergio Henao Montoya (Col) Qhubeka-NextHash|
|30||Loïc Vliegen (Bel) Intermarché-Wanty-Gobert Matériaux|
|31||Jan Bakelants (Bel) Intermarché-Wanty-Gobert Matériaux|
|32||Jonas Koch (Ger) Intermarché-Wanty-Gobert Matériaux|
|33||Danny van Poppel (Ned) Intermarché-Wanty-Gobert Matériaux|
|34||Carlos Barbero (Spa) Qhubeka-NextHash|
|35||Tadej Pogacar (Slo) UAE Team Emirates||0:00:26|
|36||Mikkel Bjerg (Den) UAE Team Emirates|
|37||Sergio Higuita Garcia (Col) EF Education-Nippo|
|38||Ivan Garcia Cortina (Spa) Movistar Team|
|39||Magnus Cort (Den) EF Education-Nippo|
|40||Bauke Mollema (Ned) Trek-Segafredo|
|41||Luka Mezgec (Slo) Team BikeExchange|
|42||David Gaudu (Fra) Groupama-FDJ|
|43||Alexey Lutsenko (Kaz) Astana-Premier Tech|
|44||Rigoberto Uran (Col) EF Education-Nippo|
|45||Toms Skujins (Lat) Trek-Segafredo|
|46||Greg Van Avermaet (Bel) AG2R Citroën Team|
|47||Joris Nieuwenhuis (Ned) Team DSM|
|48||Geraint Thomas (GBr) Ineos Grenadiers|
|49||Esteban Chaves Rubio (Col) Team BikeExchange|
|50||Louis Meintjes (RSA) Intermarché-Wanty-Gobert Matériaux|
|51||Julien Bernard (Fra) Trek-Segafredo|
|52||Emanuel Buchmann (Ger) Bora-Hansgrohe|
|53||Wout Poels (Ned) Bahrain Victorious|
|54||Cyril Gautier (Fra) B&B Hotels p/b KTM|
|55||Fred Wright (GBr) Bahrain Victorious|
|56||Vegard Stake Laengen (Nor) UAE Team Emirates|
|57||Aurélien Paret Peintre (Fra) AG2R Citroën Team|
|58||Xandro Meurisse (Bel) Alpecin-Fenix|
|59||Oliver Naesen (Bel) AG2R Citroën Team|
|60||Dorian Godon (Fra) AG2R Citroën Team|
|61||Elie Gesbert (Fra) Team Arkea-Samsic|
|62||Kasper Asgreen (Den) Deceuninck-QuickStep|
|63||Stefan Küng (Swi) Groupama-FDJ|
|64||Edvald Boasson Hagen (Nor) TotalEnergies|
|65||Julien Simon (Fra) TotalEnergies|
|66||Mark Donovan (GBr) Team DSM|
|67||Lucas Hamilton (Aus) Team BikeExchange|
|68||Davide Formolo (Ita) UAE Team Emirates|
|69||Richie Porte (Aus) Ineos Grenadiers|
|70||Ruben Guerreiro (Por) EF Education-Nippo|
|71||Jacopo Guarnieri (Ita) Groupama-FDJ|
|72||Mattia Cattaneo (Ita) Deceuninck-QuickStep|
|73||Ben O'Connor (Aus) AG2R Citroën Team|
|74||Quentin Pacher (Fra) B&B Hotels p/b KTM|
|75||Guillaume Martin (Fra) Cofidis|
|76||Anthony Delaplace (Fra) Team Arkea-Samsic|
|77||Michael Mørkøv (Den) Deceuninck-QuickStep||0:00:38|
|78||Cyril Barthe (Fra) B&B Hotels p/b KTM||0:00:44|
|79||Jasper Stuyven (Bel) Trek-Segafredo||0:00:53|
|80||Peter Sagan (Svk) Bora-Hansgrohe|
|81||Franck Bonnamour (Fra) B&B Hotels p/b KTM||0:01:06|
|82||Michal Kwiatkowski (Pol) Ineos Grenadiers||0:01:13|
|83||Rick Zabel (Ger) Israel Start-up Nation||0:01:15|
|84||Georg Zimmermann (Ger) Intermarché-Wanty-Gobert Matériaux|
|85||André Greipel (Ger) Israel Start-up Nation|
|86||Kenny Elissonde (Fra) Trek-Segafredo|
|87||Michael Valgren (Den) EF Education-Nippo|
|88||Stefan Bissegger (Swi) EF Education-Nippo|
|89||Lorenzo Rota (Ita) Intermarché-Wanty-Gobert Matériaux|
|90||Alejandro Valverde (Spa) Movistar Team||0:01:21|
|91||Mike Teunissen (Ned) Jumbo-Visma|
|92||Primoz Roglic (Slo) Jumbo-Visma|
|93||Miguel Angel Lopez Moreno (Col) Movistar Team|
|94||Pello Bilbao Lopez De Armentia (Spa) Bahrain Victorious|
|95||Dylan Teuns (Bel) Bahrain Victorious|
|96||Jonas Vingegaard (Den) Jumbo-Visma|
|97||Silvan Dillier (Swi) Alpecin-Fenix|
|98||Steven Kruijswijk (Ned) Jumbo-Visma|
|99||Pierre Rolland (Fra) B&B Hotels p/b KTM|
|100||Imanol Erviti (Spa) Movistar Team|
|101||Rui Costa (Por) UAE Team Emirates||0:01:27|
|102||Nicholas Dlamini (RSA) Qhubeka-NextHash||0:01:35|
|103||Connor Swift (GBr) Team Arkea-Samsic||0:01:45|
|104||Carlos Verona Quintanilla (Spa) Movistar Team||0:01:56|
|105||Neilson Powless (USA) EF Education-Nippo|
|106||Stefan De Bod (RSA) Astana-Premier Tech|
|107||Mads Pedersen (Den) Trek-Segafredo||0:01:59|
|108||Edward Theuns (Bel) Trek-Segafredo|
|109||Jonathan Castroviejo Nicolas (Spa) Ineos Grenadiers||0:02:03|
|110||Omar Fraile Matarranz (Spa) Astana-Premier Tech|
|111||Ion Izagirre Insausti (Spa) Astana-Premier Tech|
|112||Nans Peters (Fra) AG2R Citroën Team||0:02:06|
|113||Tiesj Benoot (Bel) Team DSM|
|114||Cristian Rodriguez Martin (Spa) TotalEnergies||0:02:07|
|115||Victor de la Parte (Spa) TotalEnergies|
|116||Benoit Cosnefroy (Fra) AG2R Citroën Team|
|117||Patrick Konrad (Aut) Bora-Hansgrohe|
|118||Jelle Wallays (Bel) Cofidis|
|119||Kristian Sbaragli (Ita) Alpecin-Fenix|
|120||Petr Vakoc (Cze) Alpecin-Fenix|
|121||Daniel Martin (Irl) Israel Start-up Nation||0:02:11|
|122||Luke Rowe (GBr) Ineos Grenadiers|
|123||Chris Froome (GBr) Israel Start-up Nation|
|124||Reto Hollenstein (Swi) Israel Start-up Nation|
|125||Michael Woods (Can) Israel Start-up Nation|
|126||Michael Schär (Swi) AG2R Citroën Team|
|127||Christophe Laporte (Fra) Cofidis|
|128||Simon Geschke (Ger) Cofidis|
|129||Casper Pedersen (Den) Team DSM|
|130||Simon Yates (GBr) Team BikeExchange|
|131||Tony Martin (Ger) Jumbo-Visma||0:02:15|
|132||Brandon McNulty (USA) UAE Team Emirates|
|133||Rafal Majka (Pol) UAE Team Emirates|
|134||Michael Gogl (Aut) Qhubeka-NextHash||0:02:22|
|135||Philippe Gilbert (Bel) Lotto Soudal||0:02:32|
|136||Ruben Fernandez (Spa) Cofidis||0:02:37|
|137||Tosh Van Der Sande (Bel) Lotto Soudal|
|138||Hugo Houle (Can) Astana-Premier Tech||0:02:39|
|139||Lukas Pöstlberger (Aut) Bora-Hansgrohe||0:02:42|
|140||Tao Geoghegan Hart (GBr) Ineos Grenadiers||0:02:46|
|141||Luke Durbridge (Aus) Team BikeExchange||0:02:47|
|142||Dylan van Baarle (Ned) Ineos Grenadiers|
|143||Nils Politt (Ger) Bora-Hansgrohe||0:02:56|
|144||Tim Declercq (Bel) Deceuninck-QuickStep|
|145||Jesus Herrada (Spa) Cofidis||0:02:59|
|146||Anthony Perez (Fra) Cofidis|
|147||Dmitriy Gruzdev (Kaz) Astana-Premier Tech||0:03:00|
|148||Marc Hirschi (Swi) UAE Team Emirates|
|149||Alex Aranburu Deba (Spa) Astana-Premier Tech|
|150||Brent Van Moer (Bel) Lotto Soudal||0:03:51|
|151||Harry Sweeny (Aus) Lotto Soudal||0:03:52|
|152||Christopher Juul-Jensen (Den) Team BikeExchange|
|153||Bruno Armirail (Fra) Groupama-FDJ||0:04:11|
|154||Arnaud Demare (Fra) Groupama-FDJ|
|155||Jorge Arcas (Spa) Movistar Team||0:04:57|
|156||Dries Devenyns (Bel) Deceuninck-QuickStep|
|157||Omer Goldstein (Isr) Israel Start-up Nation|
|158||Jeremy Cabot (Fra) TotalEnergies|
|159||Valentin Madouas (Fra) Groupama-FDJ||0:05:01|
|160||Pierre-Luc Périchon (Fra) Cofidis|
|161||Simon Clarke (Aus) Qhubeka-NextHash|
|162||Sean Bennett (USA) Qhubeka-NextHash|
|163||Amund Grøndahl Jansen (Nor) Team BikeExchange|
|164||Sepp Kuss (USA) Jumbo-Visma|
|165||Jonas Rutsch (Ger) EF Education-Nippo||0:05:03|
|166||Maxime Chevalier (Fra) B&B Hotels p/b KTM||0:05:20|
|167||Bryan Coquard (Fra) B&B Hotels p/b KTM||0:05:21|
|168||Mark Cavendish (GBr) Deceuninck-QuickStep||0:05:28|
|169||Thomas De Gendt (Bel) Lotto Soudal||0:06:07|
|170||Roger Kluge (Ger) Lotto Soudal||0:06:08|
|171||Warren Barguil (Fra) Team Arkea-Samsic||0:06:37|
|172||Daniel McLay (GBr) Team Arkea-Samsic||0:06:39|
|173||Clément Russo (Fra) Team Arkea-Samsic||0:07:36|
|174||Jasper De Buyst (Bel) Lotto Soudal|
|175||Daniel Oss (Ita) Bora-Hansgrohe||0:07:39|
|176||Ide Schelling (Ned) Bora-Hansgrohe||0:07:41|
|177||Marco Haller (Aut) Bahrain Victorious||0:08:36|
|178||Caleb Ewan (Aus) Lotto Soudal|
|DNF||Robert Gesink (Ned) Jumbo-Visma|
|DNF||Jack Haig (Aus) Bahrain Victorious|
|Pos.||Rider Name (Country) Team||Result|
|1||Cyril Barthe (Fra) B&B Hotels p/b KTM||20|
|2||Maxime Chevalier (Fra) B&B Hotels p/b KTM||17|
|3||Michael Schär (Swi) AG2R Citroën Team||15|
|4||Jelle Wallays (Bel) Cofidis||13|
|5||Caleb Ewan (Aus) Lotto Soudal||11|
|6||Mark Cavendish (GBr) Deceuninck-QuickStep||10|
|7||Michael Mørkøv (Den) Deceuninck-QuickStep||9|
|8||Sonny Colbrelli (Ita) Bahrain Victorious||8|
|9||Arnaud Demare (Fra) Groupama-FDJ||7|
|10||Peter Sagan (Svk) Bora-Hansgrohe||6|
|11||Michael Matthews (Aus) Team BikeExchange||5|
|12||Jasper Philipsen (Bel) Alpecin-Fenix||4|
|13||Jacopo Guarnieri (Ita) Groupama-FDJ||3|
|14||Marco Haller (Aut) Bahrain Victorious||2|
|15||Daniel Oss (Ita) Bora-Hansgrohe||1|
|Pos.||Rider Name (Country) Team||Result|