Conor Garland, J.T. Miller, Phillip Di Giuseppe and Dakota Joshua each had a goal and an assist for the Canucks (32-34-5), who are 8-2-0 in their past 10 games. Thatcher Demko made 17 saves.
"We needed it today," Miller said of the scoring depth. "I don't think we were sharp for the 60 minutes, to be honest. Our power play kind of sucked the life out of our game. We're definitely better than what we're showing right now."
James Reimer made 14 saves for the Sharks (19-38-15), who have lost eight in a row (0-5-3).
"When you make so many changes, some of the things that are happening out there are not really the fault of the new players," San Jose coach David Quinn said. "They just haven't been accustomed to playing the way you want to play, but the guys that have been here have to keep this thing together and understand we've got a season to finish, and we've got to do a better job finishing on a strong note."
Miller put the Canucks ahead 1-0 at 6:15 of the first period, intercepting a Tomas Hertl pass at the blue line and skating in alone for a wrist shot. Miller has 16 points (nine goals, seven assists) in his past 10 games.
"Sometimes you feel like you're shooting into a five-gallon bucket," Miller said.