David Perron had two goals and an assist for Detroit (34-33-9), which has won four of its past five games. Jordan Oesterle and Olli Maatta each had two assists.
The Red Wings are eight points back of a wild card in the Eastern Conference with five games remaining.
"It just keeps reminding me personally, and others, I'm sure, that if we had just won a few more games … and that's basically only in the last month or so," Perron said. "I think that's something that next year we've got to that feeling, that urgency, a little bit earlier so that we remember how important every game is."
Montreal (30-41-6) was shut out for a second game in a row and lost its fourth straight (0-3-1). The Canadiens, whose goal drought reached 121:25, are 4-12-2 in their past 18 games.
"It was not good enough," Montreal defenseman Mike Matheson said. "I don't think it was absolutely horrible, I think we did do some good things, but at the end of the day it's just not good enough and we need to find something. We've got four games left and you can just lay off the gas and ride into the offseason or realize that everybody that's playing right now is getting put in a position they haven't been put in before, whether it's ice time or opportunity.
"You spend a lot of time wishing for that, and so this is the chance to do something with it."
Cayden Primeau, who was recalled from Laval of the American Hockey League on Wednesday, made 16 saves in his second start in the past four games. He made 24 saves in a 3-2 loss at the Philadelphia Flyers a week earlier.
"There's a few plays that probably no goalie stops so it's tough for him," Canadiens captain Nick Suzuki said. "We want to play better. It's a big opportunity for him to show what he can do at this level and we know he can be a really good goalie in the future."
Lucas Raymond gave Detroit a 1-0 lead at 4:55 of the first period. He took a pass from Perron and stick-handled into the slot before scoring on a wrist shot past Primeau's raised glove.