Philipsen denies Cavendish all-time Tour de France record
The 38-year-old Cavendish, looking for a record-breaking 35th career stage win on the Tour de France, took the lead, but Philipsen burst past him to win while Eritrean rider Biniam Girmay came third.
The 25-year-old Philipsen has won all three stages that ended in bunch sprints and on the 2km long home straight his teammate Mathieu van der Poel again led the Belgian into pole position.
Huge crowds braved the baking heat along the banks of the Garonne river in Bordeaux believing they would witness a vintage Cavendish set an all-time record of 35 stage wins.
The last time the Tour de France ended in downtown Bordeaux was 2010, when Cavendish was in his glorious prime, and where he produced his trademark victory roar when he won that stage.
On Friday's seventh stage of this Tour they instead witnessed Cavendish's clever bid denied at the death as he crossed the line cursing.
Girmay, of the Intermarche outfit, would have become the first Black African to win a stage but the 23-year-old also missed out narrowly as he finished third.
In the overall standings defending champion Jonas Vingegaard of Denmark retains the overall leader's yellow jersey ahead of Slovenia's two-time champion Tadej Pogacar of the UAE Team.
Saturday's eighth stage is another flattish affair with a 200km race from Libourne to Limoges, albeit with three small climbs near the end, meaning a sprint is possible, as is a late escape.