Pettersson knocked a centering pass out of the air to put the Canucks ahead 2-0 at 12:46 of the first period, and he made it 5-1 when he scored on the power play at 12:23 of the third.
It was the seventh time in their 14 games this season and fifth in the past six that the Canucks scored at least five goals. After scoring the fewest goals in the NHL over the previous four seasons, Vancouver is third in scoring (3.64 goals per game).
[WATCH: All Canucks vs. Sharks highlights]
"We're playing with a lot of confidence," said Pettersson, who has 14 points (four goals, 10 assists) in his past seven games and 20 (six goals, 14 assists) in his past 12. "Nothing comes easy in this league, and we focus a lot on work hard, outskate teams, and good things happen."
Brandon Sutter, Jake Virtanen and Adam Gaudette scored, and Thatcher Demko made 24 saves for the Canucks (9-3-2), who are 5-0-2 in their past seven.
Video: VAN@SJS: Sutter buries rebound with no-look backhand
Marc-Edouard Vlasic and Evander Kane scored in the third period, and Aaron Dell made 23 saves for the Sharks (4-10-1), who have lost five straight, including 3-2 to the Winnipeg Jets on Friday. San Jose has been outscored 22-8 during the losing streak.
"Same problems that have plagued us a lot of the year, we get behind early," coach Peter DeBoer said. "Usually one of the first two or three chances ends up in the net, and we're playing from behind all night."
Vancouver, which was coming off a 2-1 overtime loss to the Anaheim Ducks on Friday, has outscored its opponents 49-27 while going 9-1-2 in its past 12 games.
"Guys are confident, and we're scoring some big goals," Demko said. "That's great, it helps me build some confidence as the game goes on, especially with the goals coming early."
Sutter put the Canucks ahead 1-0 on a rebound at 4:17 of the first period, sliding a backhand past a sprawling Dell.
Virtanen scored on a breakaway 45 seconds into the second period to make it 3-0. Dell appeared to make the save using his right heel to kick the puck out of the air, but video review showed the puck crossed the goal line.
Video: VAN@SJS: Virtanen pots backhander to extend lead
"It's tough to play that kind of hockey, trying to open it up and catch up," DeBoer said. "If there's one thing you can point to tonight, we needed a save, or at least not to get behind early."
Gaudette scored for the second straight game when his centering pass went in off defenseman Mario Ferraro's skate to make it 4-0 at 5:11 of the second.
Vlasic scored on a shorthanded 2-on-1 to make it 4-1 at 10:51 of the third period, and Kane knocked in his own rebound on a 2-on-1 with 22 seconds left in the game for the 5-2 final.
"We can't sit here and sulk," defenseman Brenden Dillon said. "Everybody has to collectively look in the mirror and be better."
Vancouver was without rookie defenseman Quinn Hughes, who is day to day after bruising his knee against Anaheim. Ashton Sautner replaced Hughes, but he left the game at 6:38 of the first period with an upper-body injury after a hit from Dillon.
"You can't say enough about the D corps," Demko said. "It's a lot harder than it may look playing five guys, especially when you lose guys in the first period. It's a lot of minutes, and guys just continued to step up."
Video: VAN@SJS: Pettersson nets second goal on power play
They said it
"We work hard, we take the puck to the net, we create scoring chances, we get bodies to the net, and that's what we are focusing on." -- Canucks forward Elias Pettersson
"Everybody has to look in the mirror, goalies, coaches, players, everybody. We've got to find a way. This is our group, there is no cavalry coming." -- Sharks coach Peter DeBoer
Need to know
Vlasic's goal was his 69th, moving him past Dan Boyle into second place among defensemen in Sharks history (Brent Burns, 146). ... Kane has 12 points (eight goals, four assists) in his past 12 games. ... Canucks coach Travis Green said before the game that Hughes, who is tied for third among NHL rookies with 10 points (one goal, nine assists), could play Tuesday against the St. Louis Blues.
Canucks: Host the St. Louis Blues on Tuesday (10 p.m. ET; SNP, FS-MW, NHL.TV)
Sharks: Host the Chicago Blackhawks on Tuesday (10 p.m. ET; NBCSN, NBCSCH+, NHL.TV)
Video: Pettersson's two goals power Canucks to 5-2 road win