The Belgian was a cut above the rest in the 11th stage, a 180km ride from Clermont-Ferrand, beating Dutchman Dylan Groenewegen and German Phil Bauhaus to take his career tally of wins in the world’s greatest race to six.
Although he did not benefit this time from the work of his top lead-out man Mathieu van der Poel, who struggled in the finale, Philipsen timed his effort to perfection to prevail by a bike length.
He has now won six of the last seven bunch sprints on the Tour, having only been denied this year by Dane Mads Pedersen in Limoges last Saturday.
The Alpecin Deceuninck rider became the first man to win four stages in the same Tour since Briton Mark Cavendish in 2021.
Italian Daniel Oss was the last of a three-man breakaway group to be swallowed up by the peloton, 13.5km from the finish line, making way for the sprinters’ team in light rain.
Philipsen can now bid to become the first rider to win five stages in a single edition of the Tour since German Marcel Kittel in 2017.
He strengthened his grip on the green jersey for the points classification, taking his tally to 323 and widen the gap with second-placed Bryan Coquard to a massive 145 points.
“Everything went well today, even if Mathieu (Van der Poel) was not here. He wasn’t feeling too well, he caught a little cold, but I think he might also have spared some energy for tomorrow’s stage,” Philipsen said.
Groenewegen was dejected once again.
“I thought today was the day, we did everything perfectly but in the end someone was faster.
“We can only keep trying,” he told reporters.
Defending champion Jonas Vingegaard of Denmark retained the overall leader’s yellow jersey.
He leads second-placed Tadej Pogacar of Slovenia by 17 seconds with Australian Jai Hindley in third place, 2:40 off the pace as there was no major change in the top positions of the general classification.
Thursday’s 12th stage is a 169km roller-coaster between Roanne and Belleville en Beaujolais.