Elvis Merzlikins made 27 saves for Columbus (28-16-9), which extended its point streak to eight games (7-0-1) and moved into third place in the Metropolitan Division, one point ahead of the New York Islanders.
The Blue Jackets, who had their six-game winning streak end with a 2-1 overtime loss at the Buffalo Sabres on Saturday, are 17-2-5 in 24 games since Dec. 9.
"You feel like at this point of the year, it's a race to make the Stanley Cup] Playoffs," Dubois said. "And you look at the scores every night, and it seems like the teams around you never lose, or they'll lose only a few. So to come back from the break, two afternoon games, two big games against teams that it wasn't their first game from the break -- you know, they weren't rusty -- it's huge to get three points."
***[WATCH: [All Blue Jackets vs. Canadiens highlights]*
Tomas Tatar scored his 20th goal and had an assist for Montreal (24-23-7), which lost for the first time in three games and trails the Carolina Hurricanes by eight points for the second wild card into the playoffs from the Eastern Conference. Carey Price made 23 saves after he made 29 in a 4-0 win against the Florida Panthers on Saturday.
"I don't think we got outplayed," Canadiens coach Claude Julien said. "I think it was a tight game, and the difference was the mistakes. We made a few mistakes that ended up in the back of our net."
Vladislav Gavrikov gave Columbus a 1-0 lead at 12:45 of the first period. He took a pass from Oliver Bjorkstrand and scored on a wrist shot from the left face-off dot after Dubois stripped the puck from Ryan Poehling.
Dubois made it 2-0 on a partial breakaway at 3:31 of the second. Racing down the left side with the puck, he drove to the net and cut past defenseman Ben Chiarot to flip a backhand shot over Price's glove.
"I saw [Chiarot] coming like a train, so I was just trying to get as far away as possible from him," Dubois said. "And then you just kind of read, I was going to shoot it, and then I changed my mind at the last minute."