McDonald's tally 1 minute into the second period put St. Louis up 2-1 and he helped out on goals by Jason Arnott and Alex Steen for the Blues, who grabbed a 2-games-to-1 advantage in their Western Conference quarterfinal series.
Patrik Berglund also scored as St. Louis won its second straight following a Game 1 loss to the Sharks.
Brian Elliott, subbing for the injured Jaroslav Halak, made 26 stops to earn the victory.
Antti Niemi turned aside 23-of-27 shots for the Sharks.
Boston schools pull out free condoms over wrapping complaints
NBC reportedly holds celebs hostage to Jimmy Fallon's show