MONTREAL -- After blowing a two-goal lead in the third period, St. Louis got a huge save from Ty Conklin in overtime that led to the Blues' winning goal.
McDonald scored unassisted as he beat Carey Price with a wrist shot into the top left corner after the Blues squandered a 3-1 lead in the third period.
Ty Conklin stopped 35 shots, saving the best for last when he denied Montreal's Andrei Markov immediately before McDonald's winner.
"A lot of times that's what can happen," Blues coach Davis Payne said. "You look at scenarios in overtime -- it got a little wide open, they had the puck for the first portion of that 4-on-4 and we got the one opportunity that counted. A great save by Ty on Markov coming down the slot, and obviously that one saved the opportunity for two points."
Scott Gomez tied it for the Canadiens with 32.9 seconds remaining in regulation. Benoit Pouliot scored his second goal of the game midway through the third as Montreal rallied to earn a point after falling behind 2-0 just 3:35 in.
"Sometimes when you're down by two goals or three goals you kind of let down a little bit, everyone's down and no one's going, but tonight was the complete opposite," Pouliot said.
With Price pulled for an extra attacker, Gomez netted the tying goal when he deflected Jaroslav Spacek's drive from the point past Ty Conklin. A video review upheld referee Bill McCreary's ruling that Gomez didn't touch the puck with a high stick.
Perron scored during a power play 2:57 in and Kariya made it 2-0 when he beat Price from behind the net at 3:35.
Steen, who assisted on Perron's tally, scored at 19:47 as T.J. Oshie earned his second straight assist.
The Blues, who have won five of six, improved to 5-3-1 under Payne, who took over when Andy Murray was fired on Jan. 2.
Pouliot brought Montreal within one twice, including his 10th of the season 9:11 into the third.
The Canadiens have lost three in a row (0-2-1).
"It's a huge point for us," Pouliot said. "The standings are tight right now. We need to gain a little ground but we'll take any points right now, that's for sure."
Price, who made 24 saves, had an eventful opening period that included a spectacular collision with St. Louis forward Cam Janssen along the boards at 7:30.
Perron opened the scoring when he deflected Steen's point shot up and over Price's left pad.
Then, with Price on his knees and turned toward the net as he searched for the loose puck, Kariya jumped up to play it. He fired a shot from behind the goal line that banked in off Price's pad.
The sellout crowd came to life after Janssen sent Price flying backward to the ice when he drove along the right boards and collided with the goalie, who had ventured way out to play a loose puck.
"I thought it was the right play on his part," Canadiens coach Jacques Martin said about Price's decision to go after the puck.
Despite Montreal defenseman Roman Hamrlik's intervention, Price was looking for a fight. He tried to throw punches at Janssen, who was sent off for roughing with Hamrlik at 7:30.
"I think he was trying to challenge me and I couldn't stop laughing," said Janssen, who has no points and 104 penalty minutes in 30 games this season. "Whatever, if he wants to challenge me then we'll see what happens the next game we play but big [Montreal enforcer] Georges [Laraque] might be in the lineup for that one. Maybe I'll try to get a goal off him instead."
Conklin was also penalized for crossing the center line during the melee, and Pouliot scored 8 seconds into the power play.
Steen restored the Blues' two-goal lead when he scored off a rebound of Jay McClement's shot on a 2-on-1.
"It was a big reassuring goal for us, especially to get that two-goal lead," Payne said. "And their power-play goal happened so quickly. It looked like they were looking to miss that net strong side and get that rebound and the next thing you know Pouliot's tapping in an empty-net goal. You don't mind the power-play goals -- when they happen easy they tend to take a little bit out of you and it was a great response by us."
Montreal made it 3-2 after a gaffe by St. Louis defenseman Barret Jackman in his zone. Gomez stripped the puck from Jackman and fed a pass to Pouliot, who fired in a one-timer for his eighth goal in 11 games.
McDonald ended a five-game goal drought. ... Pouliot has eight goals in 13 games with Montreal since he was acquired from Minnesota on Nov. 23. He had two goals in 14 games with the Wild. ... RW Mathieu Darche, recalled from Hamilton of the AHL on Tuesday, made his Montreal debut on a line with Tomas Plekanec and Mike Cammalleri. ... The Canadiens dressed eight defensemen as Marc-Andre Bergeron and Ryan O'Byrne played between C Glen Metropolit on Montreal's fourth line.