In a day earmarked as one for the sprinters and an unofficial rest day for everyone else, the Manx Missile took the victory in a photo finish from Andre Greipel (Lotto Soudal).\
While Greipel tenatively raised his arm in victory, Cavendish said he knew he'd claimed his 28th stage win.
“I've won by more, I've won by less," said Cavendish. "I normally know when I've won or I lose. When I crossed the line, I kind of knew I had it today but anything can happen."
The British rider's victory means he now joins five-time Tour winner Bernard Hinault in joint second on the all-time list of stage winners with 28 stage victories. Belgian Eddy Merckx, like Hinault a five-times Tour winner, still tops the list of stage wins with 34.
Party like it's 2009
The lead-in to the finish line was like a re-enactment from the late Noughties, with the Dimension Data sprint train of Bernhard Eisel, Edvald Boasson Hagen and Mark Renshaw recalling the dominant HTC-Highroad team that guided Cavendish to stage wins in 2008 and 2009.
It's been five seasons since the Highroad team dissolved but Cavendish himself alluded to that team.
"Some people scoffed as if we were all past it, but we're happy," he said. "My teammates were phenomenal."
Bryan Coquard (Direct Energie took third in the sprint, while world champion Peter Sagan (Tinkoff) took fourth place to stay in the hunt for a sixth green jersey. Sagan also retained the overall leader's yellow jersey.
As it happened
There may have been a lot of excitement in the last few kilometres but otherwise the 223 kilometres from Granville to Angers were notable for their lack of action.
In fact, the stage was one of the slowest flat stages in the modern Tour era, with the peloton essentially going on a glorified recovery ride for the first few hours - setting an average of just 33.6 kilometres per hour for the first four hours of the stage.
Fortuneo-Vetal Concept's Armindo Fonseca struck a lonely figure as in the breakaway as he pulled away solo after the flag drop, soon gaining a gap around 11 minutes.
The peloton showed little interest in chasing Fonseca, who looked set to spend the entire stage alone until Thomas Voeckler (Direct-Energie) slipped away to join his compatriot with 82kms to go. The sprint teams weren't going to be cheated out of a fast finish, however, and the duo were caught with 8kms to race.
There was no change in the general classification, with the key overall contenders all finishing safely in the bunch.