Gary Gardner struck to help sink Reading and lift Birmingham over their bitter rivals - and his parent club - Aston Villa.
The 26-year-old opened the scoring in the hosts' 2-1 win for his first Birmingham goal - the last time he scored at St Andrew's was for Villa two years ago.
Lukas Jutkiewicz's brilliant header - his seventh goal of the season - sealed the points despite Yakou Meite grabbing a late consolation.
It extended Birmingham's unbeaten run to 10 games as they moved into the top half of the Sky Bet Championship, above Villa, for the first time since August 2017. The Royals dropped to 20th, two points above the relegation zone.
Birmingham began brightly but Reading, seeking successive league wins for the first time in almost a year, conjured the best chances of the opening half an hour.
First, after 15 minutes, Meite tricked his way into the area and forced Lee Camp into a smart save. Camp was then almost left embarrassed soon after when Liam Kelly's shot whistled through his fingers and hit the post.
Despite pressing, Birmingham struggled to break down organised Reading as Gardner headed over and Che Adams' tame shot was gathered by Anssi Jaakkola.
Reading continued to create the better chances and Camp smuggled John Swift's free kick behind just before the break.
But four minutes after the re-start the hosts took the lead. A mix-up saw Kelly concede a needless corner and, when Jota swung the ball in, Gardner stabbed in following Michael Morrison's flick.
Jaakkola denied Jota a second soon after and Birmingham remained comfortable until they needed to rely on Camp's reactions.
Sam Baldock wriggled into the box and crossed, only for Camp to make an excellent save to stop Maikel Kieftenbeld turning the ball into his own net.
Birmingham immediately broke and Jutkiewicz wrapped up the victory with 20 minutes remaining when he looped in a brilliant header from Adams' deep cross.
Connor Mahoney squandered the chance to make it 3-0 late on before Meite scored from close range in injury time.
Garry Monk: "We're realistic. Let's not forget this club, in three out of the last five years, has been fighting relegation on the last day. Our aim is to make sure we're not doing that, our aim is to make sure it's not a season where we're coming into the last day and there's the possibility of relegation.
"We've all got dreams and ambitions but let's be realistic. We're still very early. It's now three wins in a row and 10 unbeaten in any league is a hard thing to do. The effort and commitment in the second half was huge."
Paul Clement: "It was a very frustrating evening. We're disappointed not to come away with anything and we made a couple of mistakes. Birmingham are really good at setting themselves up to prey on the opposition making errors but we've gifted them.
"We've done some things well offensively and with a bit more cutting edge we could have had more than the one goal, but overall it was mistakes which cost us."