Wellens had taken the overall lead on Sunday’s summit finish to Mashan Nongla and never looked under threat as he safely navigated the final two stages, including Tuesday’s stage six starting and finishing in Guilin.
Trek-Segafredo‘s Bauke Mollema was Wellens’s closest placed rival at the start of the day, just six seconds back, but wasn’t tempted out of the pack in an attempt to gain bonus seconds.
That meant that the stage would be decided among the sprinters, and with Fernando Gaviria three of the race’s four previous flat finishes, the Quick-Step Floors rider was always going to be the favourite.
Watch: Tour de France 2018 route guide
Daniel Oss (BMC Racing), Jon Irisarri (Caja Rural) and Wang Meiyin (Bahrain-Merida) were the day’s three escapees, enjoying a maximum lead of four minutes that was steadily whittled down as Quick-Step Floors and Lotto-Soudal shared the work on the front of the peloton.
The catch was eventually made with four kilometres remaining, which left Quick-Step to put Fernando Gaviria in contention for victory, and the Colombian simply proving too good for the rest in the final 200 metres.
Gaviria finished a bike length clear of Niccolo Bonifazio, who edged out Dylan Groenewegen for second, while Wellens finished safely in the peloton to complete overall victory.
Tour of Guangxi 2017, stage six: Guilin to Guilin, 168.1km
1. Fernando Gaviria Rendon (Col) Quick-Step Floors, in 3-46-30
2. Niccolo Bonifazio (Ita) Bahrain-Merida
3. Dylan Groenewegen (Ned) Team LottoNl-Jumbo
4. Andrea Guardini (Ita) UAE Team Emirates
5. Magnus Cort Nielsen (Den) Orica-Scott
6. Maximilian Richard Walscheid (Ger) Team Sunweb
7. Matteo Pelucchi (Ita) Bora-Hansgrohe
8. Maximiliano Ariel Richeze (Arg) Quick-Step Floors
9. Roger Kluge (Ger) Orica-Scott
10. Grega Bole (Slo) Bahrain-Merida, all at same time
Final general classification
1. Tim Wellens (Bel) Lotto Soudal, in 20-59-49
2. Bauke Mollema (Ned) Trek-Segafredo, at 6 secs
3. Nicolas Roche (Irl) BMC Racing, at 11 secs
4. Julian Alaphilippe (Fra) Quick-Step Floors,at 15 secs
5. Ben Hermans (Bel) BMC Racing, at 18 secs
6. Matej Mohoric (Slo) UAE Team Emirates, at 24 secs
7. Wout Poels (Ned) Team Sky, at 24 secs
8. Silvan Dillier (Sui) BMC Racing, at 29 secs
9. Rein Taaramäe (Est) Katusha-Alpecin, at 29 secs
10. Mekseb Debesay (Eri) Dimension Data, at 31 secs