Colombian sprinter Fernando Gaviria (QuickStep Floors) won stage four of the 2018 Tour de France in a thrilling three-way photo finish from Andre Greipel (Lotto-Soudal) and Peter Sagan (Bora-hansgrohe).

Gaviria looked as though he had gone too soon as Greipel charged down the middle but the Colombian came back strong with a second jump to win the stage, just holding off a late charge from Sagan.

Mark Cavendish and his Dimension Data team-mates had been heavily involved in the lead-up to the sprint but the Manxman did not feature at the sharp end after appearing to be cut off by Dylan Groenewegen (LottoNL-Jumbo).

Greg van Avermaet (BMC Racing) kept the yellow jersey, meanwhile, after finishing safely in the bunch.

Fernando Gaviria outsprinted Peter Sagan and Andre Greipel to win stage four of the 2018 Tour de France

Four riders were in the break – one more than the two previous road stages – with Cofidis responding to their last place in the team time trial by sending Dimitri Claeys and Anthony Perez up the road.

They were joined by Jerome Cousin (Direct Energie), in the break for the second time, and Guillaume van Keirsbulck (Wanty-Groupe Gobert) and all four were allowed to build a big lead.

BMC Racing kept the Franco-Belgian breakaway under control, however, and with the pace down there was little to report through much of the stage.

Cavendish had a brief issue with his race radio, which led to him dismounting to chase it down into a ditch, but he was soon back in the bunch with no problems.

The Manxman once again did not contest the intermediate sprint – which Van Keirsbulck won from the break and Gaviria took it from the peloton ahead of Greipel and Sagan.

On the day’s lone climb, meanwhile, Perez grabbed the point on offer – but his GC position meant it was not enough to take the King of the Mountains jersey.

As ever, the day was not fully without issues – a crash saw several big names, including Dan Martin (UAE-Team Emirates) and Mikel Landa (Movistar), caught up.

The peloton slowed to allow them back, which also saw the gap extend again – 2’40” with 40km to race – which in turn ensured the bonus-second sprint was neutralised with the time bonuses taken by the break.

Greg van Avermaet enjoyed a relatively straightforward day in the yellow jersey

Stage four analysis

Another flat stage, and another day where the weather stayed calm and the sprinters were left to duke it out. Fernando Gaviria kicked not once, but twice - if he keeps up like this he is going to be the man to beat for years to come.

There was some late drama after yet another crash but this was a day for the fast men. The performances of Andre Greipel, and of Dimension Data's Mark Cavendish were encouraging too - if either (or both) of those can recapture their best form it will liven up the sprint finishes even more.

The size of that gap clearly worried the peloton, with QuickStep Floors among those redoubling their efforts on the front of the bunch, but the advantage was still above a minute with 10km to race.

Dimension Data, Bora-hansgrohe and, briefly, Groupama-FDJ were among the other teams to lend a hand but the four breakaway riders continued to work well together as the gap stuck at 40 seconds with 5.5km to go.

A crash in the middle of the bunch disrupted the chase further, with Tony Gallopin (Lotto-Soudal) among the worst affected, while Rigoberto Uran (EF-Drapac) was one of the GC contenders forced to chase back.

Uran was successful but Ilnur Zakarin (Katusha-Alpecin) was not as the pace ramped up to catch the breakaway riders just outside the flame rouge.

Dimension Data were on the front as the sprint unfolded, but once Gaviria – and then Greipel – kicked there was no stopping them.

Sagan charged through to pip Greipel to second, but Gaviria won by a wheel’s length to claim his second win in four days.

Tour de France 2018: stage four – result

1) Fernando Gaviria (COL) – Quick-Step Floors – 4.25.01hrs
2) Peter Sagan (SVK) – Bora-hansgrohe – ST
3) Andre Greipel (GER) – Lotto-Soudal
4) Dylan Groenewegen (NED) – LottoNL-Jumbo
5) Marcel Kittel (GER) – Katusha-Alpecin
6) Andrea Pasqualon (ITA) – Wanty-Groupe Gobert
7) Alexander Kristoff (NOR) – UAE-Team Emirates
8) John Degenkolb (GER) – Trek-Segafredo
9) Dion Smith (NZL) – Wanty-Groupe Gobert
10) Timothy Dupont (BEL) – Wanty-Groupe Gobert

General classification

1) Greg van Avermaet (BEL) – BMC Racing – 13.33.56hrs
2) Tejay van Garderen (USA) – BMC Racing – ST
3) Geraint Thomas (GBR) – Team Sky +3”
4) Philippe Gilbert (BEL) – QuickStep Floors +5”
5) Julian Alaphilippe (FRA) – QuickStep Floors +7”
6) Bob Jungels (LUX) – QuickStep Floors +7”
7) Tom Dumoulin (NED) – Team Sunweb +11”
8) Soren Kragh Anderson (DEN) – Team Sunweb – ST
9) Michael Matthews (AUS) – Team Sunweb
10) Rigoberto Uran (COL) – EF-Drapac +35"
Selected others
14) Richie Porte (AUS) – BMC Racing +51"
15) Alejandro Valverde (ESP) – Movistar +53"
16) Mikel Landa (ESP) - Movistar – ST
17) Chris Foome (GBR) – Team Sky +55"
18) Adam Yates (GBR) – Mitchelton-Scott +1.00
19) Vincenzo Nibali (ITA) – Bahrain-Merida +1.06
20) Romain Bardet (FRA) – Ag2r-La Mondiale +1.15
48) Nairo Quintana (COL) – Movistar +2.08