Dan Hamhuis scored Vancouver's third power-play goal midway through the third period and Jacob Markstrom robbed San Jose twice in the final 20 minutes to help the Canucks beat the Sharks 4-2 on Saturday night.
Linden Vey and Daniel Sedin also scored power-play goals and Alexandre Burrows sealed it with an empty-netter for the Canucks, who had blown two third-period leads to the Sharks the past week before coming up with key plays late in this game.
Markstrom made 32 saves, including highlight-reel stops against Tomas Hertl and Patrick Marleau in the third to help Vancouver win its fifth straight in San Jose.
Michael Haley and Brent Burns scored for the Sharks, who fell six points behind first-place Anaheim in the Pacific Division. James Reimer made 22 saves in his San Jose debut.
The Canucks also lost star Henrik Sedin to an upper-body injury in the first period. Sedin got tangled up with Brent Burns during a power play early in the first and fell to the ice. After being helped off by trainers, Sedin returned to play four more shifts before leaving again late in the first and not returning.
After rallying from deficits after two periods to beat the Canucks twice in Vancouver the past week, the Sharks came back again in the third when Burns beat Markstrom with a wrister from the slot off a pass from Joe Thornton to make it 2-2 early in the period.
Markstrom had robbed Hertl earlier in the period with a shoulder save and then did it again with a glove save against Marleau during a delayed penalty to keep the score tied at 2.
Joonas Donskoi then got called for a trip late in San Jose's power play and the Canucks made San Jose pay when Bo Horvat slid a pass to an open Hamhuis, who knocked it into the open net for his first goal of the season.
Haley was involved in both goals in the first period. He got San Jose on the board midway through the first when he stole a pass from Ben Hutton and fired a shot that trickled through Markstrom. That was Haley's first goal since March 19, 2011.
Haley then took a four-minute high-sticking penalty late in the first when he clipped Sven Baertschi. The Canucks capitalized when Vey lifted a rebound of Baertschi's point shot over Reimer to tie the game.
Vancouver added another power-play goal early in the second after Joe Pavelski was called for a trip in the offensive zone. Baertschi then got the puck in the circle and fired a wrister that deflected off Daniel Sedin and past Reimer to make it 2-1.
The Canucks kept up their strong special teams play by killing off two San Jose power plays later in the second to maintain the lead after two periods.
NOTES: Vancouver matched a season high with three power-play goals, also doing it Nov. 21 against Chicago. ... Sharks F Melker Karlsson missed his second straight game with an upper-body injury.