Sprint stages usually travel a well-worn path. The start, a break of three or four who ride out to a solid before the fightback from the peloton and the catch coming some 10 kilometres outside the finishing town before the sprinters get to work.
The 195km from La Baule to Sarzeau ticked all the boxes. It was flat with a couple of sprints and category four bump to shake out the legs, so clearly marked as another day for the sprinters.
This one came close to re-writing the script with the catch coming a nail-biting kilometre before the finish after a crash split the bunch leaving some of the general classification contenders like Rigoberto Uran (EF Education First), Ilnur Zakarin (Katusha-Alpecin), Dan Martin (UAE Team Emirates) to chase.
The victory went to Fernando Gaviria (Quick-Step Floors) with his second of this Tour ahead of Peter Sagan (BORA-hansgrohe) and Andre Greipel (Lotto-Soudal).
"It was a very difficult victory," said Gaviria. "We didn't have any help to control the breakaway today so it was really difficult, but we really wanted to win today and the team did an incredible job and we're really happy. I'd like to thank all of my teammates for all of their hard work, and we're now looking forward to the next few days."
Gaviria also reflected on his impressive start to the race, which has included two wins from the opening four stages.
"It's hard to say that you believe that you can do it when you come here, but we really trained very hard for this Tour. We've arrived here in very good condition."
[tdf widget="stagewinners" stage="4"]
Guillaume Van Keirsbulck (Wanty), Jerome Cousin (Direct Energie), Dimitri Claeys and Anthony Perez (both Cofidis) were the four men who made the break to craft a lead of over seven minutes as the peloton eased into the day.
As the time gap slowly dropped van Keirsbulck claimed the intermediate sprint at Derval ahead of Claeys, Perez and Cousin with 97km to go. Perez took the only KOM point on offer at St-Jean-la-Poterie before Claeys won the final bonus sprint.
The peloton got to work with 35km to go and three minutes to recover on the leading foursome but faced resistance in what was going to be a close bit of timing to the finish. In the end, it was accomplished but only just.
The general classification was unchanged with BMC's Greg van Avermaet continuing to lead team-mate Tejay van Garderen and Geraint Thomas (Sky) by only three seconds.
[tdf widget="tourleaders" stage="4"]
The big loser from the stage was Ilnur Zakarin (Katusha-Alpecin) who was caught behind a crash inside the final ten kilometres. The Russian GC hopeful was well behind the race by the time he was back up and racing. He ended conceding 59 seconds on the stage an now sits one minute and 51 seconds off the race lead.