Duncan Keith also scored in the third period and Marian Hossa added an empty- netter for the Blackhawks, who are on a much needed three-game winning streak after dropping their previous nine. Corey Crawford stopped 29 shots in the win.
"It was a big game for us and a very good game for us in a lot of ways," said Keith. "We trailed much of the game, but we stuck to the plan and we're able to grind it out for the win."
"We're a team right now that needs everybody to play at a high level for us to win on the road," said St. Louis head coach Ken Hitchcock. "The way we're built, we don't have offensive players to carry us. So if guys are not up to task it reflects on our game."
St. Louis got the only goal of the first two periods late in the first when a scrum in front of the net saw Jamie Langenbrunner kick the puck towards the goal and McDonald get his stick on it before it crossed the line with 24 seconds left.
Elliott had stopped 13 shots through the first two periods, but Chicago tied the game 4:52 into the third.
Patrick Sharp had the puck at the top of the left circle and faked the shot before passing it over to the slot for a cutting Keith, who blasted a one- timer into the net.
The Blackhawks then took the lead with 6:57 to play. A slap pass from the left point by Keith went to the low left side for Bolland, who tried to center the puck, but saw it bounce off the skate of St. Louis' David Backes and slide into the net.
Hossa sealed the win in the final minute with an empty-netter, his 23rd goal of the season.
Chicago hosts Detroit on Tuesday...St. Louis hosts Boston on Wednesday before embarking on a six-game road trip...Chicago was 0-for-3 on the power play while St. Louis went 0-for-1.