Mike Hoffman had two assists, and Jake Allen made 24 saves for the Canadiens (25-29-4), who have won five of their past seven games. Jake Allen made 24 saves.
"It was one of our best games of the year, just being complete," Montreal forward Josh Anderson said. "Everyone knew where each other was. We were really balanced tonight, and it showed. When everybody's in the right spot, it's easy to play like that. It just looked like everybody was connected."
Owen Tippett and Ivan Provorov scored for the Flyers (23-27-10), who have lost six of seven (1-5-1). Carter Hart made 26 saves.
It was their first game back after playing four in six nights on a Western road trip.
"Played a little bit in the third for a few minutes, but we looked pretty sluggish," Philadelphia coach John Tortorella said. "Sometimes those road trips work against you, you're coming across the time zones. ... As a group, we were sluggish right on through."