Jonathan Drouin scored the game-winner at 1:54 of the third period, ending an eight-game goal drought.
"This year I'm just focused on being consistent in the way I play," Drouin said. "I think you look at all the top players that sometimes go through droughts. What are you doing other than that? Are you doing something good or are you doing something bad? Definitely nice to snap that one though."
The goal also ended Blackhawks goalie Corey Crawford's shutout streak at 173:09.
Crawford, a Montreal native, made 33 saves and lost to the Canadiens in regulation for the first time (8-1-2). He was coming off back-to-back shutouts, against the Philadelphia Flyers on Wednesday and at the Minnesota Wild on Saturday.
Joe Morrow, who assisted on Drouin's goal, scored at 7:45 of the third to make it 2-0 when his slap shot got past Crawford.
Montreal (6-8-1) has won four of its past five games after starting the season 2-7-1. Chicago (7-6-2) had won two straight.
"This was our third game in four nights, you know our team's going to be tired physically and so we had to be as sharp as we could mentally, really minimize our mistakes," Canadiens coach Claude Julien said. "But at the same time it was good to have a goaltender that was fresh and ready to go. We needed a solid performance from Charlie and he gave us that."