Paul Byron, a waiver pickup last season, scored his 20th goal to extend the Canadiens lead early in the third period.
Nathan Beaulieu added a late power-play goal to put the game out of reach.
Another Byron goal was disallowed because the speedy winger was offside on the play.
It took all of 28 seconds in the first period for the Canadiens to get on the board. Tomas Plekanec, of all people, tucked the rebound of a point shot by Andrei Markov past Craig Anderson.
The lead lasted four minutes before Tom Pyatt, of all people, banked one off Jordie Benn’s stick and over Carey Price’s right shoulder.
With a shade over two minutes left in the first, Jordie Benn’s point shot changed direction off Victor Stahlberg’s stick and beat Anderson to restore the home team’s lead.
Shots were 37-31 Canadiens.