Brian Gionta and James Wisniewski each added power-play tallies in the second period for the second-place Canadiens, who pulled to within three points of the Bruins atop the Northeast Division with the victory.
Carey Price stopped 30-of-31 shots for the Habs.
Max Pacioretty of Montreal was taken off the ice on a stretcher after his head collided with an exposed stanchion during a hit by Boston defenseman Zdeno Chara.
The Canadiens' Web site reported Pacioretty was conscious and able to move. Chara was given a 5-minute major penalty on the play.
Milan Lucic scored and Tuukka Rask made 22 saves for the Bruins.