With Chicago's Dave Bolland off for hooking, McDonald fired the winner past Blackhawks goalie Nikolai Khabibulin on a low shot from the right circle.
McDonald, David Perron and Cam Paddock scored in the first period for the Blues, who ended a six-game winless slide (0-5-1). St. Louis's last victory was on Oct. 25 versus Florida.
Bolland scored his first two goals of the season and assisted on Dustin Byfuglien's score. Bolland's second goal, early in the third period, tied the game at 3.