Sharks forward Melker Karlsson left the game after blocking a shot 3:25 into the first period, and defenseman Marc-Edouard Vlasic left after being hit near his neck by a shot at 4:44 of the second.
"Huge, gutsy performance," Sharks coach Peter DeBoer said. "When you have the deck stacked, end of a road trip, we lost two men early, we were up and kind of let them back in the game and still found a way to rebound, I thought it was huge character, gutsy - all those adjectives - a fantastic win."
Nikolay Goldobin scored a power-play goal in the first period for the Canucks (25-38-9), who have lost six straight for the first time this season. Bo Horvat and Alexander Edler also scored on the power play, and Jacob Markstrom made 25 saves.
Vancouver was eliminated from playoff contention on Wednesday.
"It's tough right now," Canucks captain Henrik Sedin said. "You score three on the power play, and you should win in this league. It's tough to take."
Goldobin made it 1-0 with a screened wrist shot at 10:48 of the first period. It was the Canucks' first goal in 222:57, short of their record of 234:52 set in March 2016.
"You have to look at the positives," Horvat said. "We did score tonight. We scored three goals and our power play was clicking."
Labanc tied it on a power play at 14:58 of the first period, and Couture chipped in a centering pass 1:10 later to make it 2-1.
Meier tipped in a point shot to make it 3-1 at 1:47 of the second period, but Horvat deflected a pass in off his skate at 5:23, and Edler tied it 3-3 with a one-timer at 11:48.
Tomas Hertl made it 5-3 with an empty-net goal at 19:35 of the third period.