David Pastrnak scored his 30th goal of the season and had an assist, and Linus Ullmark made 17 saves in his return from a lower-body injury for Boston (28-8-9), which extended its winning streak to four and point streak to eight games (5-0-3).
Sixteen players had a point for Boston.
“I think it talks about the evolution of our team actually growing offensively,” Bruins coach Jim Montgomery said. “I don’t think we ever envisioned having a night like this. Over the course of 82 games, there’s some outliers, but I thought that we’ve been seeing this coming here for four games.”
Cole Caufield scored in his fifth straight game, and Sean Monahan had three assists for Montreal (19-20-7), which has lost five of seven (2-3-2). Sam Montembeault made 22 saves in 49:13; Cayden Primeau made five saves in relief.
“I thought through two periods it was a great game,” Canadiens coach Martin St. Louis said. “It was fun getting to be part of it. Third period was hard. Every now and then, this League will humble you. That’s kind of what happened to the team in the third period.”
Caufield gave the Canadiens a 1-0 lead at 9:18 of the first period with a power-play goal from the right side of the net.
Brandon Carlo, who missed the previous five games with an upper-body injury, tied it 1-1 at 12:47, redirecting Trent Frederic’s centering pass.
Joel Armia gave Montreal a 2-1 lead at 15:00 on Joshua Roy’s centering pass off the rush.
Jake DeBrusk tied it 2-2 at 18:10 from the side of the net, and Heinen redirected Matt Grzelcyk’s shot pass to put the Bruins ahead 3-2 at 19:05.
Mike Matheson tied it 3-3 from the high slot on the power play at 6:16 of the second period.
“If we could take one positive from it, it would probably be [scoring two power-play goals],” Matheson said. “They’re a great penalty kill, so I think we did a good job of not worrying too much about where you’re supposed to be, quote unquote, depending on where your position is and really just supporting each other.”