Nicklas Bendtner ended his goal drought as Birmingham survived a late rally by Southampton to put their promotion push back on track.
The Danish international scored the decisive second goal 10 minutes from time for his first in eight games and only his second in five-and-a-half months.
His striker made it 2-0 after Radhi Jaidi had opened the scoring.
But Saints gave the home side a nervy finale after Marek Saganowski hit the target for the 10th time in 10 games.
Blues had enough chances to have won the game comfortably with Andrew Cole impressing on his debut after a bleak Easter programme which had seen them drop out of the top two.
But the grip they had on the game in the first half thanks to the midfield dominance of Stephen Clemence and Fabrice Muamba disappeared after the interval.
Southampton posed a much greater threat after the introduction of Kenwyne Jones and Andrew Surman but defeat means they are now facing an uphill struggle to reach the play-offs.
Cole was lively for Blues in the early stages and his pass freed up Damien Johnson whose cross picked out Nicklas Bendtner but Chris Baird was able to block his shot.
Martin Taylor headed over when well place from Gary McSheffrey's corner and Rahdi Jaidi's downward goal-bound header from another McSheffrey corner was blocked by Alexander Ostlund.
Skipper Johnson was prominent in the opening quarter but he was substituted after 22 minutes clutching his right hamstring and replaced by Rowan Vine.
The home side continued to dominate and McSheffrey should have done better when he was ideally positioned to control a deep cross from Stephen Clemence but he blazed over the bar.
It was out of the blue when Southampton nearly snatched the lead when a fierce low drive from Danny Guthrie hit the post with Colin Doyle well beaten in the 31st minute.
But 60 seconds late City's pressure finally paid off with Jaidi putting them ahead with his fifth goal of the season.
McSheffrey floated his corner into the danger area and Jaidi's header was too powerful for Bartosz Bialkowski to keep out although he did get a hand to the ball.
Blues defender Stephen Kelly became the first player to be booked early in the second half for a foul on Saints substitute Jones.
Doyle dealt comfortably with a shot on the turn from Jones as the visitors came more into the game with Muamba and Clemence running out of steam in midfield.
City retaliated and Muamba had the ball in the net but McSheffrey had strayed marginally offside before delivering the cross.
Birmingham enjoyed a purple patch when they could have scored three times in the space of two minutes.
Martin Taylor had a shot cleared off the line, Bendtner was denied by Bialkowski after racing clear of the Saints defence and then the Danish international headed against the bar from McSheffrey's cross.
They were left breathing a sigh of relief when Jhon Viafara hammered the ball into the side netting from close range.
Bendtner looked to have made sure of victory. Cole laid the ball into his path and the 19-year-old rounded Bialkowski before firing into an empty net.
But with five minutes left Saganowski headed in Viafara's cross to set up a tense finale.
Teams
Birmingham Doyle, N'Gotty, Jaidi, Martin Taylor, Kelly,Johnson (Vine 22), Muamba, Clemence (Nafti 79), McSheffrey,Cole (Campbell 85), Bendtner.
Subs Not Used: Maik Taylor, Jerome.
Booked: Kelly, McSheffrey.
Goals: Jaidi 32, Bendtner 79.
Southampton Bialkowski, Ostlund, Powell, Baird, Makin,Viafara, Guthrie, Wright (Pele 75), Belmadi (Surman 46),Saganowski, Best (Jones 46).
Subs Not Used: Davis, Rasiak.
Goals: Saganowski 85.
Att: 19,754
Ref: R Booth (Nottinghamshire).