Ilya Mikheyev scored two goals, Andrei Kuzmenko had a goal and an assist, and Conor Garland, Bo Horvat and Jack Studnicka also scored for the Canucks. Pettersson also had two assists.
Spencer Martin started in goal and gave up four goals on nine shots before he was pulled late in the first period. Collin Delia came on and had 14 saves for the win as Vancouver finished 2-2-0 on a four-game homestand with two overtime victories.
Montreal built a 4-0 lead in the first period before Vancouver scored five straight goals to take the lead. The Canadiens regained the lead with two goals in the third before Kuzmenko tied it again with a backdoor tip-in with 1:25 remaining to force overtime. J.T. Miller, who set up the Russian rookie, got his 300th assist on the play.
Pettersson then ended the extra period quickly, sending a blistering shot through Sam Montembault's pads for his 12th of the season.
''At the end of the day, I don't care how we did it. We got it done,'' Horvat said. ''Obviously it was not pretty, we made it pretty hard on ourselves. But we showed a lot of resilience tonight and . it was a fun one. Monday night football game.''
After scoring the winning goal, Pettersson threw his hands in the air triumphantly before being mobbed by his teammates along the boards.
''I don't know if it was relief to score that goal or whatever,'' Pettersson said of the celebration. ''But just the overall emotion all game, to be down four and comeback, be down one again and then tie it at the end - we had a lot of emotions and I'm glad we came out on top tonight.''
Nick Suzuki had a goal and an assist, and Cole Caulfield, Sean Monahan, Michael Pizzetta, Christian Dvorak and Josh Anderson also scored for the Canadiens. Jordan Harris had two assists and Montembault finished with 25 saves.
''It was a weird game,'' Montreal center Jake Evans said. ''But hopefully we can learn to put that extra one in and kind of put the nail in the coffin.''
Garland got the Canucks comeback started with 3:16 left in the middle period with a wrist shot over Montembault's left pad for his fourth to make it 4-1. It ended a 17-game goal-scoring drought for the forward.
Mikheyev pulled Vancouver within two with 1:32 left in the second as he got a pass from Pettersson and popped it in.
Horvat batted in a rebound for his 20th of the season and first in 18 games to make 4-3 at 4:02 of the third.
Mikheyev tied it with his second of the night and eighth of the season 1:43 later as he got a cross-crease pass from Pettersson and fired a sharp-angle shot past Montembault.
Studnicka gave Vancouver a 5-4 lead at 8:49. He picked off Montembault's clearing attempt behind the Canadiens' goal and sent a shot up and under the crossbar before the goalie had a chance to get set back in his crease.
Dvorak tied it with 4:37 left, redirecting Evgenii Dadanov's pass from the top of the crease for his fifth.
Montreal regained the lead 6-5 with 3 minutes left when Anderson's shot went off Delia's pad. The rebound bounced out, pinging off the skate of Vancouver defenseman Quinn Hughes and into the net.
Caufield got the Canadiens on the scoreboard first on a slap shot from the bottom of the faceoff circle for his 14th goal of the season 7:49 into the game. Suzuki made it 2-0 with 7:26 left, moments after the Canadiens killed off a penalty. Monahan tipped Suzuki's pass in from the top of the crease with 5:03 remaining in the first and Pezzetta got his first of the season just 1:20 later on a backhander to make it 4-0.
Canadiens: At Seattle on Tuesday night to wrap up a four-game western trip.
Canucks: At San Jose on Wednesday night.
AP NHL: https://www.apnews.com/hub/NHL and https://www.twitter.com/AP-NHL
Copyright 2023 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.