The Dimension Data sprinter made it two sprint wins out of three at the Abu Dhabi Tour
In what was largely an incident-free stage up until the final sprint, there were no changes in the top ten on GC, with Tanel Kangert (Astana) sealing overall victory.
In the finale of the stage, Cavendish found himself perfectly positioned for the sprint after Dimension Data took control in the final kilometre, following work from BMC Racing and Orica-BikeExchange in the previous few kilometres to stretch the bunch out into single file.
John Degenkolb (Giant -Alpecin) may have managed to place himself between Cavendish and his final domestique Mark Renshaw, and the German, cautious not to start his sprint too early, refused to take to the front when Renshaw finished his lead-out.
That opened a small gap between Renshaw and the peloton, and for a moment it seemed the Australian might go for the stage win himself. But after his initial hesitation Degenkolb eventually started his sprint, serving only to lead out Cavendish, who duly stormed past his wheel to win the stage at a canter.
The victory also means Cavendish seals victory in the points competition.
Held after the sun had already set, there was an unusual feel to proceedings as the riders embarked on 26 laps of the Yas Marina F1 circuit, with flamboyant floodlights casting light on the peloton.
On such a flat, straightforward circuit, though, there was nothing unusual about the racing, and a sprint finish never looked in doubt.
There was nevertheless still a breakaway, with five riders going up the road at the start of the day – Kristian House (One Pro Cycling), Fredrik Frisson (Lotto-Soudal), Sergey Firsanov (Gazprom-Rusvelo), Michal Paluta (CCC Sprandi) and Yauhen Sobal (Minsk).
House, Frisson and Paluta later broke clear from the rest to form a lead group of three, and continued to attack each other right up until finally being caught as the race entered the last lap.
There was one other attack from the peloton, when Floris Gerts (BMC Racing) went off the front with roughly 15km to go, but he was only able to catch up to the second breakaway group of the peloton who had been left behind by the leading trio.
Abu Dhabi Tour, stage four: Yas Marina Circuit – Yas Marina Circuit, 143km
1 Mark Cavendish (GBr) Dimension Data in 3-07-44
2 Giacomo Nizzolo (Ita) Trek-Segafredo
3 Elia Viviani (Ita) Sky
4 Magnus Cort Nielsen (Den) Orica-BikeExchange
5 Jempy Drucker (Lux) BMC
6 Ramon Sinkeldam (Ned) Giant-Alpecin
7 Michael Matthews (Aus) Orica-BikeExchange
8 Sacha Modolo (Ita) Lampre-Merida
9 Mark Renshaw (Aus) Dimension Data
10 Michael Kolar (Svk) Tinkoff all at same time
Final general classification
1 Tanel Kangert (Est) Astana in 9-19-44
2 Nicholas Roche (Irl) Tinkoff at 21secs
3 Diego Ulissi (Ita) Lampre-Merida at 43secs
4 Vincenzo Nibali (Ita) Astana at 1-00
5 Alberto Contador (Esp) Tinkoff at same time
6 Julien Bernard (Fra) Trek-Segafredo at 1-02
7 Ben Hermans (Bel) BMC at 1-29
8 Martijn Tusveld (Ned) Giant-Alpecin at 1-28
9 Winner Anacona (Col) Movistar at
10 Jesper Hansen (Den) Tinkoff both at same time