Crawford improved his record against the Canadiens to 8-0-2.
Alex DeBrincat, who got his first goal in the NHL, Brandon Saad, who scored his fifth goal of the season, and Artem Anisimov scored for the Blackhawks, who remained undefeated in regulation time (3-0-1).
Tomas Plekanec scored for the Canadiens (1-3-0), who have scored four goals in regulation and overtime this season. Carey Price made 22 saves.
Chicago scored two goals in 19 seconds to lead 2-1 after the first period.
DeBrincat, the Blackhawks' second-round pick (39th overall) in 2016, tied the game at 17:53, driving home a pass from Patrick Sharp after a clearing attempt by Montreal defenseman Jamie Benn hit a linesman at the Canadiens' blue line.
Saad gave Chicago the lead when he shook off a check by Canadiens rookie defenseman Victor Mete and scored on a pass from Jonathan Toews at 18:12.
The Blackhawks took a 3-1 lead on the power play at 10:44 of the second period when Anisimov finished off a nice three-way passing play that started with defenseman Cody Franson finding DeBrincat with a diagonal pass to Price's left. DeBrincat, who averaged 111 points a season in three seasons with the Erie Otters of the Ontario Hockey League, showed his scorer's hands. He one-touched the pass across the crease to Anisimov at the far post.
Plekanec opened the scoring 75 seconds into the game with Montreal's second even-strength goal in four games as the Canadiens dominated the play in the first 10 minutes, outshooting the Blackhawks 14-3.
After Plekanec gave the Canadiens the early lead, they had a great chance to build on it with a 5-on-3 power play for 36 seconds at 6:53 of the first period, but the power play fizzled again and remains scoreless this season.
The Canadiens finished the game 0-for-5 on the power play and is 0-for-14 with a man advantage to start the season.
NOTES: Blackhawks C Nick Schmaltz missed his second game with an upper-body injury. ... Blackhawks D Connor Murphy and D Jordan Oesterle were scratched. ... Canadiens LW Jacob De La Rose was scratched and replaced in the lineup by RW Ales Hemsky. ... Canadiens D Mark Streit was scratched for the second game in a row. ... The game was the Canadiens' 100th home opener in the NHL, their 108th overall.