Brendan Gallagher and Jonathan Drouin scored first-period goals and the Canadiens held on for a 3-1 victory over the Blue Jackets in Montreal.
But Carey Price was the difference as he made 37 saves.
Andrew Shaw scored an empty-netter with 84 seconds remaining as the Habs won their second straight.
Pierre-Luc Dubois scored for Columbus early in the second period.
The loss ended the Blue Jackets' six-game winning streak.