Cammalleri's goal came just 64 seconds into the game and Maxim Lapierre scored 6 minutes later for a 2-0 lead. Boston cut its deficit to a single goal on three occasions but could never get a tying score past Carey Price.
Brian Gionta scored on a slapshot with 3:06 to go in the second for the game-winner. Milan Lucic produced the only goal of the third period on the power play to once more move the Bruins within one.
Price made 34 saves to help the Canadiens snap a three-game losing streak. Montreal will play its next seven games on the road.
Boston, which has lost three in a row for the first time this season, got 37 saves from Tim Thomas. It was his first regulation loss since Nov. 26.