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.
Wisconsin business offering 'therapeutic cuddling' forced to close
Video of Victoria’s Secret models trying to 'twerk' hits Instagram