Gaviria won Stage 4 by edging world champion Peter Sagan in a sprint finish to the flat 121-mile leg from La Baule to Sarzeau that started and finished on the Atlantic coast.
The 23-year-old Gaviria had already won Stage 1 – when he also edged Sagan – on his Tour debut for his Quick-Step team.
“It was a very difficult sprint, but we knew how to pull it off,” Gaviria said. “I had to spend all my energy because it was a demanding finish. We are happy to have won it because the team deserved it.”
Defending champion Chris Froome of Team Sky, who remained 55 seconds back in the overall standings due to his fall on Stage 1, finished safely in the pack with Belgian leader Van Avermaet.
Quick-Step hunted down the breakaway to set up Gaviria, who powered his way down the final stretch of the four-kilometre finish – the longest straight run-in to conclude a stage on this Tour.
Gaviria surged across the line just inches ahead of the hard-charging Sagan, who was trying to add to his own Stage 2 win, and Andre Greipel in a close third.
“He is faster than me,” Sagan said about Gaviria. “We will see. Maybe I will wait for some mistake. And maybe we will see the next days on the climbs. Every stage is different, every sprint is different.”
Riders were enjoying a calm sunny afternoon in the cycling hotbed of northwest Brittany until a pileup near the front of the peloton with just over five kilometres left which left several riders on the tarmac. Last year’s runner-up Rigoberto Uran (EF Education First-Drapac) and Katusha leader Ilnur Zakarin were slowed down by the accident.
Van Avermaet, the 2016 Olympic road race champion who is support rider for BMC leader Richie Porte, took the overall lead when his team won Monday’s team time trial.
There were no changes among the other title hopefuls. Tom Dumoulin was seventh (11 seconds behind), Uran was 10th (at 35s) and Porte 14th (at 51s). Movistar teammates Alejandro Valverde and Mikel Landa were 15th and 16th (at 53s), just ahead of Froome. 2014 winner Vincenzo Nibali was 19th (at 1:06), Romain Bardet 20th (at 1:15) and Nairo Quintana was 48th (at 2:08).
A four-man break of Dimitri Claeys and Anthony Perez (Cofidis), Guillaume Van Keirsbulck (Wanty) and Jerome Cousin (Direct Energie) opened up a gap of seven minutes early on, but were slowly reeled in and swallowed up by the Quick-Step-led pack with two kilometres to go.
The Tour will spend three more days in northeastern Brittany. Next up is Stage 5, a hilly trek from Lorient to Quimper.
“Tomorrow is going to be a hard stage. It is a mini-classic in the Tour,” said one-day race specialist Van Avermaet.