Lukas Jutkiewicz's 50th league goal for Birmingham helped put Lee Bowyer's side another step closer to Sky Bet Championship safety after a 2-0 win against Stoke at St Andrew's.
The 32-year-old striker's brace made it 10 points in five games under the former Charlton manager since he replaced Aitor Karanka.
Victory gave Birmingham their third successive home win for the first time since October 2019, while a third straight clean sheet was a first for them in just over three years.
Stoke's slump continued as they made it six defeats in their last 10 games.
But until Blues broke the deadlock three minutes before half-time, it was Michael O'Neill's side who looked the more likely scorers with the hosts having to defend for long periods.
Injury-hit Stoke, who were without 11 players, were gifted the first chance.
Goalkeeper Neil Etheridge dropped Jordan Thompson's inswinging corner against striker Steven Fletcher - who knew little about it - and the ball rebounded just wide.
Birmingham's first threat came when Jutkiewicz crossed from the left and Gary Gardner looped a header wide.
But Stoke returned to the attack and with Blues poor in possession, began to assert some control on the game.
John Obi Mikel blazed over from 15 yards from a loose ball when Blues failed to clear another Thompson corner following a header at the far post.
Then Blues - and captain Harlee Dean in particular - breathed a sigh of relief in the 28th minute when Stoke had an effort ruled out.
The skipper was dispossessed on halfway and Fletcher stabbed home Jacob Brown's cross only to be flagged offside.
Stoke missed another chance when Rhys Norrington-Davies headed wide from Tommy Smith's cross from six yards out.
Blues punished them by taking the lead against the run of play, with a variation of a regular set-piece straight off the training ground.
Marc Roberts lined up for a trademark long throw-in only to hurl it short to Maxime Colin, who touched it back to the defender and his first-time curling cross was headed home powerfully by Jutkiewicz.
The burly striker made it 2-0 in the 53rd minute with his second goal of the game, rifling home the rebound after goalkeeper Adam Davies, diving low to his left, failed to hold a 25-yard curling effort from half-time substitute Riley McGree.
It was the striker's third goal in three home games and it completed a half century for the club in the league in his 203rd game for them in the competition.
Blues could have had added to their tally but the clean-through Jonathan Leko took an extra touch and was dispossessed instead of squaring to the unmarked McGree 10 yards out, then Ivan Sunjic drilled just wide.
What the managers said...
Birmingham's Lee Bowyer: "We are not safe. There's a lot of football to go - 15 points to play for. We are only nine points in front of them and they have got four games in hand. And we have got to play them - that's our next game.
"We have given ourselves a chance. If we keep putting performances in like that and keep picking up points, we should be OK but we can't get away from what's getting us to this situation."
Stoke's Michael O'Neill: "We started well and the one disallowed was a very tight offside but then we switched off. With the throw-in, we expected it long and they threw it short - the other 500 throw-ins have been long.
"We didn't defend the cross either and we've got to block the runner. For the second goal, we didn't get out to the ball - it was a poor defensive header, Adam (Davies) spilled the shot and they scored off the rebound."