Michalek's third goal broke a 3-3 tie with just over 2 minutes left after the Canucks had rallied from a 3-0 deficit.
He tallied his first goal when he put a backhander past goalie Roberto Luongo. It came on a power play in the first 90 seconds of the game. Michalek then scored his second goal with 10 minutes remaining in the second period.
Jonathan Cheechoo, who led the NHL in goals last season, added his first of the preseason on a power play.
The Sharks (2-1) were leading 3-0 when Vancouver (0-2) mounted a comeback. Jannick Hansen tallied Vancouver's first goal with just 12 seconds left in the second period.
Daniel Sedin and his identical twin, Henrik, proceeded to tie the game on successive goals in the third period. Daniel's goal came on a power play at 11:22 and Henrik's scored 2 minutes and 10 seconds later.
Evgeni Nabokov was in goal for the Sharks for the first of half of the game and held Vancouver scoreless on 23 shots. His replacement Nolan Schaefer gave up the Canucks three goals and finished the game saving just seven of 10 shots.
The Canucks have opened the preseason with two straight losses.
Luongo saved 11 of 13 shots. And, his replacement Wade Flaherty finished going 2-for-22.