Smith scored a power-play goal at 8:00 of the third period to make it 2-1. After taking a puck at the right point from San Jose defenseman Dmitry Orlov, Smith walked in and fired a wrist shot past Vancouver goalie Leevi Merilainen's blocker.
Smith scored his second goal at 10:39 to tie it 2-2. Michael Kesselring's shot from the point went wide, but Macklin Celebrini tapped it in front, and Smith one-timed it over Merilainen's glove.
Mason Marchment put San Jose ahead 3-2 just 11 seconds later at 10:50. He got the puck on the left wing, skated down the boards, and fired a wrist shot that deflected in off the bottom of Merilainen's glove.
Marchment also had an assist, and Yaroslav Askarov made 23 saves for the Sharks (7-6-1), who snapped a two-game losing streak.
Drew O'Connor and Liam Ohgren scored for the Canucks (3-11-1), who are 1-10-1 in their past 12 games. Merilainen made 21 saves.
O'Connor put the Canucks up 1-0 at 13:21 of the first period. Forward Elias Pettersson kept the puck in at the blue line, and his wrist shot kicked off Askarov's right pad back in front, and O'Connor tapped it in while he was crashing the net.
Ohgren scored for the second straight game to push the lead to 2-0 at 18:56 of the second period. He took the puck in from the right boards, and his wrist shot from the slot beat Askarov over the blocker.
Sharks forward Filip Bystedt, who was recalled from San Jose of the American Hockey League on Wednesday, was minus-1 and had two shots on goal in 10:28 of ice time in his NHL debut. The 22-year-old was selected in the first round (No. 27) of the 2022 NHL Draft.