The Briton, riding for the Dimension Data team, beat German Greipel by less than a tyre’s length to snatch his 28th career Tour win at the end of a 223.5km ride from Granville.
Belgian Eddy Merckx, like Hinault a five-times Tour winner, still tops the list of stage wins with 34.
World champion Slovakian Peter Sagan (Tinkoff) retained the overall leader’s yellow jersey after taking fourth place to stay in the hunt for a sixth green jersey for the points classification.
Australian hopeful Richie Porte, who suffered a costly puncture on Sunday, remains off the pace and is 119 seconds behind Sagan.
“It was a long day, I’m happy we did not suffer any crash today,” said Sagan, whose team mate Alberto Contador, one of the favourites for the title who fell twice in the opening two stages, enjoyed a quiet day in the saddle.
“I’m in one piece, that’s nice.”
Sagan leads France’s Julian Alaphilippe (Etixx-Quick Step) and Spaniard Alejandro Valverde (Movistar) by eight and 10 seconds respectively with defending champion Chris Froome (Team Sky) of Britain in fifth place, 14 seconds off the pace.
Frenchman Bryan Coquard (Direct Energie) was third.
Cavendish, who looked beaten with 50 metres left after Greipel’s second acceleration, threw his bike well to add to his victory in the opening stage on Saturday.
“I’ve won by more, I’ve won by less,” said Cavendish, the most successful sprinter in Tour history.
Tonight’s fourth stage, the longest of this year’s Tour with 237.5km from Saumur to Limoges, will give another chance for the sprinters to shine before the race hits the mountains.
Make your contribution to independent news
A donation of any size to InDaily goes directly to helping our journalists uncover the facts. South Australia needs more than one voice to guide it forward, and we’d truly appreciate your contribution. Please click below to donate to InDaily.