Matt Carle also scored, while Michael Leighton made 23 saves for the Flyers, who were coming off a home-and-home sweep of the Devils. They will have a chance for another Saturday, the last game for both clubs before the Olympic break.
Glen Metropolit and Dominic Moore scored back-to-back early in the third period for the Canadiens. But the Flyers held on in a contest that concluded with a lengthy post-game scrum after Darroll Powe boarded Jaroslav Spacek late in the final period.
Carey Price made 30 saves in the loss.
Carter put the Flyers on top with 1:46 left in the opening period, when he stuffed in a puck in front. Then, 1:17 into the second frame he rifled a point shot that slipped past Price.
Two minutes later, the Flyers looked like they'd make it a runaway, as Montreal defenseman Ryan O'Byrne inadvertently tipped Carle's shot past Price for a 3-0 Philadelphia edge.
But the Habs got close with a pair of scores early in the third. At the 2:05 mark, Metropolit tallied on a snap shot, and only 56 seconds later, Moore scored in his first game with his new club, as he was acquired from Florida on Thursday.
Moore gathered a loose puck to the left of the net and appeared to bounce a wrister off Leighton's back into the goal.
Montreal got a power-play chance in the final minute, after Powe rammed Spacek into the end boards with 59 seconds to play. After the hit, Spacek curled up on the ice, grabbing his face, and eventually skated off the ice with his head facing down.
Powe was issued a boarding major and game misconduct at the same time Montreal's Roman Hamrlik was whistled for roughing, but the Canadiens weren't able to net the tying goal.
After the final buzzer sounded, players from both teams gathered together. A few fights broke out to escalate the issue, leaving gloves and sticks littered on the ice. Flyers defenseman Kimmo Timonen and Montreal forward Scott Gomez were both given roughing penalties, while Timonen also got a misconduct penalty.
The Flyers were 0-for-6 on the power play, while Montreal went 0-for-3...The Canadiens have lost two of three overall...Scott Hartnell had a pair of assists for Philadelphia.