This result sees Aitor Karanka's side move up to 15th in the Championship, wheras Veljko Paunović's Reading move down to fifth.
Story of the match
Birmingham started on the front foot, asking questions of the hosts early on, as Scott Hogan had a shot from outside the box blocked by an onrushing Tom Holmes.
The Blues’ first-half pressure paid off on 29 minutes, with Jon Toral giving the visitors the lead after a fizzed ball from Kristian Pedersen on the left found the Spaniard, who released a long-range strike that wrongfooted Rafael Cabral for his first goal since rejoining Birmingham this summer.
Reading grew into the contest, but the Blues doubled their lead after 37 minutes, with Toral cutting inside from the left into the box, curling an effort into the bottom corner.
The second half commenced and Reading pushed for a crucial goal, sensing panic from the visitors after the restart.
The Royals went more direct in the second half, and this tactic paid dividends on 60 minutes, as an unmarked Yakou Meite converted from close range past Neil Etheridge for his sixth goal of the season.
Reading chipped away at Birmingham's defence and their pressure resulted in a penalty, after Meite broke away from Harlee Dean, only for Dean to clip the Ivorian from behind, resulting in a second bookable offence.
Lucas Joao stepped up for Reading, but had his spot kick saved expertly by Etheridge, standing brave to deny the hosts an equaliser.
The ten men of Birmingham dug deep in order to keep their lead, restricting Reading to chances from outside the box and Karanka's men managed to hold Reading out to secure a hard-fought win.
Takeaways from the match
Birmingham showed a confidence and swagger in the first half that had sorely been missed this season, taking the game to Reading instead of sitting back and riding the storm. This was demonstrated by a 2-0 lead that Kananka's men took into the break, and the lead should of arguably been by more.
Reading took the game to Birmingham in the second half, highlighting the attacking flair that has pushed Paunović's men up the table. Meite managed to carve an opening, leaving Birmingham worried at the back. The penalty save seemed to have deflated Reading's momentum towards the latter stages of the game, leaving the 2,000 Reading spectators at the Madejski Stadium disappointed.
Player of the match
The Dutchman wasn't selected for the starting eleven in the early stages of the season, but has become an important figure in a revitalised Birmingham team. Having made 164 appearances for the club over five years, Kieftenbeld is certainly an important figure in the dressing room, and his experience got Birmingham over the line tonight to secure a hard-fought win.