Jordan Schroeder scored a tie-breaking goal midway through the third period, Cory Schneider made 33 saves and the Vancouver Canucks edged the Phoenix Coyotes, 2-1.
Christopher Tanev supplied the other goal for the Canucks, who have won two straight games and four of six overall.
"It wasn't necessarily pretty all the time, a Picasso, but it was effective," Schneider said.
Phoenix starting goaltender Mike Smith was shaken up late in the second period after being charged by Vancouver's Alexander Edler and was replaced by Jason LaBarbera to start the third.
Smith stopped 16 shots, while LaBarbera finished with 14 saves in relief for a Phoenix team that has dropped five games in a row.
The Coyotes were trailing when Edler received a five-minute major with 1:43 remaining in the frame.
A Martin Hanzal roughing minor delayed the start of the power play, then the Coyotes found themselves having to kill a penalty. Shane Doan went off for hooking with 35 seconds left before the second intermission.
After the penalty-killing unit did its job, the Coyotes' power play finally went to work.
Radim Vrbata gathered Oliver Ekman-Larsson's cross-ice pass and put a shot on net. Schneider turned away Vrbata's bid from the left circle, but Antoine Vermette potted the rebound from the right side of the crease, tying things up at the 2:26 mark of the third period.
The Canucks regained the lead at 9:53, with Edler playing a role in the go- ahead tally. The Vancouver defenseman fired a left-point shot that Jannik Hansen knocked down and Schroeder slipped the puck past a surprised LaBarbera.
Tanev lit the lamp 6:32 into the contest.
"There's absolutely no reason we can't do better," Doan said.
Hansen played in his 300th career game ... The Canucks have earned at least one point in their last seven (4-0-3) trips to Phoenix.