Derrick Pouliot scored on the power play with 21.6 seconds left in overtime for the Canucks after Pettersson drew a slashing penalty on a breakwaway. Pouliot's shot from the left circle hit the post, deflected off Avalanche forward Gabriel Bourque and into the net.
Pettersson got his third assist of the game on the winning goal. The rookie forward also had two goals, his second coming with 35.9 left in the third period to make it 6-6.
At the age of 19 years, 355 days, Pettersson moved ahead of Trevor Linden for youngest player in Canucks history with five points in a regular-season game. Linden had six points (three goals, three assists) against the Edmonton Oilers on Dec. 20, 1990 at 20 years, 253 days.
Brock Boeser had two goals and two assists, and Jacob Markstrom made 23 saves for Vancouver (9-6-0), which has won three straight.
"I think if everyone is heading to the same goal and everyone is focused to do what they can to bring to the team and do that every game, good things will happen," Pettersson said. "And I think we started the season that way."
Nathan MacKinnon had two goals and an assist, Alexander Kerfoot had a goal and an assist, and Mikko Rantanen had three assists for Colorado (7-4-3), which also lost to the Calgary Flames 6-5 on Thursday.
[WATCH: All Avalanche vs. Canucks highlights]
"It wasn't the best road trip," said Philipp Grubauer, who made 30 saves. "If we're smart as a team we'll learn from this road trip, learn from our mistakes."
Video: EA Sports Overtime Winner: Pouliot caps Canucks win
Boeser gave the Canucks a 1-0 lead on a breakaway after a stretch pass from Pettersson 58 seconds into the first period.
"I don't mind the way we checked tonight, to be honest, for parts of it," Avalanche coach Jared Bednar said. "We made some big mistakes, though, and gave up the home run play, which I don't like."
Sheldon Dries tied it 1-1 on a redirection in the slot at 1:38 of the second period, but Boeser scored to make it 2-1 at 5:18. Pettersson sent a pass from his blue line off the end boards to a streaking Boeser, who beat Grubauer glove side with a one-timer.
"I saw him have more speed than the defender," Pettersson said. "I was just trying to make a play and it worked out."
Ian Cole tied it 2-2 on a point shot through traffic at 6:08.
Loui Eriksson scored his first of the season at 8:47 to make it 3-2, but MacKinnon scored from the high slot off a pass from Rantanen to tie it 3-3 at 10:32.
Kerfoot gave the Avalanche a 4-3 lead at 12:36 after splitting two Canucks defensemen and beating Markstrom from in front.
"I didn't have much a part of this one," Markstrom said. "But it's a nice win."
Pettersson tied it 4-4 on a rebound at 17:33, but Nikita Zadorov scored off the rush at 1:30 of the third period to make it 5-4.
"We've not been very good defensively," MacKinnon said. "I thought we were way better tonight, but every time we made a mistake, they found a way to score."
Markus Granlund tied it 5-5 on a power play at 10:02.
MacKinnon scored on a power play with 1:37 left in the third to give Colorado a 6-5 lead, but Pettersson tied it 6-6 at 19:24 on a one-timer from the right circle following a turnover behind the net.
"I got goosebumps when we tied the game late," Pettersson said.
Said Markstrom, "Our young players are really confident in themselves and it wears off on other players, too. Even though we're down by one with a minute left, they're confident that they're going to score and they go to the net. And that's that."
Video: COL@VAN: Pettersson backhands puck past Grubauer
They said it
"I think the score is a lot lower if both goalies play well. I didn't think the goalies were that great tonight and it ended up looking like it was a bit of a shootout even though the shots were low." -- Avalanche coach Jared Bednar
"Our team showed a lot of resolve. That was a fun game to coach. I'm not going to complain about anything tonight. That was a hell of a win." -- Canucks coach Travis Green
Video: COL@VAN: Pettersson ties it late after turnover
Need to know
Colorado has multiple players with at least 10 goals through its first 14 team games (MacKinnon, 11; Gabriel Landeskog, 11) for the fifth time in Avalanche/Quebec Nordiques history and first since 1992-93 (Joe Sakic and Mats Sundin with the Nordiques). … Pettersson is the 16th player in NHL history to score at least nine goals through his first nine games and the sixth to do so since the NHL's inaugural season. ... There have been 17 players in NHL history have at least five points in a game at a younger age than Pettersson (19 years, 355 days), most recently Edmonton Oilers captain Connor McDavid (19 years, 29 days), who had two goals and three assists against the Toronto Maple Leafs on Feb. 11, 2016.
Avalanche: Host the Nashville Predators on Wednesday (10 p.m. ET; NBCSN)
Canucks: At the Detroit Red Wings on Tuesday (7:30 p.m. ET; FS-D, SNP, NHL.TV)
Video: Pettersson, Canucks beat Avs in back-and-forth affair