Looking after the green jersey for race leader Peter Sagan (Tinkoff) on the day, Cavendish took it back for his own with a perfectly timed sprint.
Cavendish waited on Greipel’s wheel after the final turn and waited for the German champion to make his move, slowly but surely edging past him right at the last minute to draw level with Bernard Hinault with 28 stage wins.
The frenetic finish was nothing like the funeral procession-like speed on show for the rest of the day; the lone breakaway rider, Armind Fonseca (Fortuneo-Vital Concept) was allowed to go and the peloton did very little to bring him back.
With his advantage hovering around the five minute mark and the peloton laughing and joking behind, crowd favourite Thomas Voeckler (Direct Energie) asked if anyone minded if he went up the road.
There were no objectors, and no other followers, so Voeckler sped up the road to join his fellow Frenchman.
The pace cranked up when the peloton approached the intermediate sprint, won by Marcel Kittel (Etixx-Quick Step), and the two riders up the road were finally swept up with eight kilometres to go.
Etixx-Quick Step, LottoNL-Jumbo and Orica-BikeExchange were among the teams working hard at the front ahead of the sprint, with Cavendish also hovering behind his Dimension Data colleagues.
Despite Etixx’s hard work, Kittel was nowhere to be seen after the final 90-degree corner, leaving it down to Cavendish and Greipel to battle it out.
Both riders celebrated the victory, but Cavendish was awarded the win after the photo finish was examined – his track lunge was enough to seal victory. Cavendish now sits six wins behind Eddy Merckx‘s tally of 34.
Coquard took third and the yellow jersey of Sagan crossed in fourth to retain his race lead.
Tuesday’s stage four is another long, flat stage between Saumur and Limoges, covering 237.5km and setting up for another possible bunch sprint.
Tour de France 2016, stage three: Granville to Angers, 223.5km
1. Mark Cavendish (GBr) Dimension Data in 5-59.54
2. André Greipel (Ger) Lotto-Soudal
3. Bryan Coquard (Fra) Direct Energie
4. Peter Sagan (Svk) Tinkoff
5. Edward Theuns (Bel) Trek-Segafredo
6. Sondre Holst Enger (Nor) IAM Cycling
7. Marcel Kittel (Ger) Etixx-QuickStep
8. Christophe Laporte (Fra) Cofidis
9. Daniel McLay (GBr) Fortuneo-Vital Concept
10. Dylan Groenewegen (Ned) LottoNL-Jumbo all same time
General classification after stage three
1. Peter Sagan (Svk) Tinkoff in 14-34-36
2. Julian Alaphilippe (Fra) Etixx-QuickStep at 8 secs
3. Alejandro Valverde (Spa) Movistar at 10 secs
4. Chris Froome (GBr) Team Sky at 14 secs
5. Warren Barguil (Fra) Giant-Alpecin at 14 secs
6. Nairo Quintana (Col) Movistar at 14 secs
7. Roman Kreuziger (Cze) Tinkoff at 14 secs
8. Tony Gallopin (Fra) Lotto-Soudal at 14 secs
9. Fabio Aru (Ita) Astana at 14 secs
10. Daniel Martin (Irl) Etixx-QuickStep at 14 secs