New York had forced extra time when Frans Nielsen found the net on a rebound with 1:12 left in the third period.
But the Canucks emerged with the victory when MacDonald's attempt to block Richardson's shot 2:16 into overtime got under the pads of goaltender Evgeni Nabokov.
Roberto Luongo earned the win with 28 saves.
Matt Moulson scored twice and Brock Nelson got his first career NHL goal for New York, which completed a four-game homestand with a 1-1-2 mark.
Aaron Carter is still in love with Hilary Duff
Millions of Getty images now available for free via embed tool