Boston (18-12-4) leapfrogged the Canadiens (17-12-5) for the first wild-card spot in the Eastern Conference.
“I don’t think there’s a whole lot that needs to be said,” said Price, who stopped 31-of-35 shots and failed to earn his 300th career NHL victory.
“There’s no excuse for that. It was a perfect opportunity to get a big win for our team but we’re going to have to park that one real quick.”
Montreal turned the puck over 24 times, fired a season-low 22 shots and went 0-for-3 on the power play, prolonging an 0-for-25 slump that dates back to Dec. 1. The Canadiens have not scored a power-play goal in nine games.
“I don’t think we were good anywhere on the ice tonight,” said captain Shea Weber. “There’s no excuse for that. We’re letting each other down. Guys have to look at each other in here and know that we all have to be better for each other.”
Montreal looked sloppy in the first period, turning the puck over 11 times after just seven minutes.
The Bruins responded with their first goal at 2:21 after a Michael Chaput turnover in his own zone. What followed was a give-and-go between Colby Cave, David Backes and Joakim Nordstrom, who beat Price from the slot for his fifth of the year.
Boston made it 2-0 late in the second period when Cave scored his first NHL goal at 19:34. The 23-year-old, playing his 16th career game, was left alone in the slot with the teams playing 4-on-4 hockey.
Boston’s David Pastrnak scooped up the puck after the goal and brought it to the bench.
“It feels really good, especially in a winning effort,” said Cave, who plans to place the puck in his trophy cabinet. “We played an unreal game as a team tonight. We rolled four lines, all three defensive pairings played good and Jaro was a brick wall back there. A recipe for success.”
Boston was on the second game of a back-to-back after losing 4-2 in Buffalo on Sunday, but it didn’t look that way.
Still playing high-tempo hockey in the third, the visitors scored 46 seconds after the intermission. A defensive collapse by the Canadiens gave David Krejci time and space at the side of the net for his sixth of the season. Krejci extended his point streak to seven games.
The Bruins added to their lead when Brad Marchand scored Boston’s fourth, on the power play, at 5:06. Pastrnak made a clever pass on the goal, his second of the game.
Halak did the rest, blanking his former team for the second time in his career as the Bruins snapped a two-game losing skid.
The Canadiens were shut out for just the second time this season.
“It’s always nice to get a shutout,” said Halak, who improved to 5-0-0 when facing Price, his former teammate. “From the drop of the puck, we played pretty good. For sixty minutes, we didn’t give them much. It was a team effort from top to bottom.”
Halak had not beaten the Canadiens since Dec. 19, 2013 when he played for the St. Louis Blues.
Notes: The Canadiens recalled defenceman Victor Mete after the game and assigned Noah Juulsen to the Laval Rocket. â€¦ Montreal defenceman Jordie Benn was a healthy scratch for the first time this season. â€¦ It was the third of four meetings between the Canadiens and Bruins this season.