Ryan Kesler, Mason Raymond and Steve Bernier scored their first goals of the season late in the first period, and Mikael Samuelsson and Alex Burrows scored 19 seconds apart in the third to help Vancouver avoid the first 0-4 start in franchise history.
Roberto Luongo, who was pulled in Vancouver's last game and came in with an uncharacteristic .820 save percentage and 4.55 goals-against average, made 27 saves.
Tomas Plekanec scored for Montreal, and Carey Price stopped 25 of 32 shots before being pulled with 8 minutes left. The Canadiens lost for the second time in two nights after winning their first two games.
Vancouver appeared to take advantage of a Montreal team that flew in late after losing to Calgary, outshooting the Canadiens 14-4 in the opening period and jumping out to a 3-0 lead.
Kesler took a pass from Alexander Elder in full flight and split the defensive pairing of Hall Gill and Yannick Weber, skating in alone from the blue line and beating Price with a nice forehand-backhand-forehand deke.
Raymond doubled the lead by getting behind the defense through the neutral zone, cutting hard through the crease and slipping a backhand through Price's legs.
Bernier made it 3-0 on a power play with 1:26 left, firing the puck into an empty net after a nice blind passing play from Daniel and Henrik Sedin.
Montreal came out firing in the second period, recording the first 14 shots of the period and getting a sharp-angle power-play goal from Plekanec before the Canucks managed their first shot more than halfway through the period. But any chance of a comeback ended when Plekanec took a tripping penalty and Henrik Sedin was left alone to convert a rebound from identical twin Daniel.
Henrik added his second goal with 4:24 left in the period when a turnover at center created a 2-on-0 break with Bernier from the blue line. Sedin faked a pass before lifting a backhand over the outstretched blocker of Price.
It was a tough night for Price, who was playing his first NHL game in his home province in front of family and friends after being benched in his lone visit last season despite having more than 800 fans in attendance.
Samuelsson jammed a power play rebound through him midway through the third as the Canucks went 3-for-5 with the man advantage. After Burrows scored on the next shift, Price was mercifully pulled in favor of Jaroslav Halak.
NOTES: Daniel Sedin had three assists, and Kesler also had two assists to go with his goal after recording just one assist his first three games. Weber, a 21-year-old rookie called up after top defenseman Andrei Markov was hurt in the season opener, was minus-3 through two periods. ... LW Tanner Glass made his regular-season Canucks debut in place of Russian rookie Sergei Shirokov, who has struggled after leading the team with seven points in four preseason games.