Reading slipped to their second successive Championship home defeat as Birmingham ended a five-match winless run with a 3-2 victory at Madejski Stadium.
Birmingham went ahead four minutes before the interval when former Blues defender Michael Morrison deflected the ball into his own net.
Reading levelled on the stroke of half-time when Yakou Meite nodded in his fifth goal of the season.
But City regained their advantage in the 59th minute, French forward Jeremie Bela curling home a superb 25-yard free-kick.
Alvaro Gimenez secured the away win after stabbing home at the second attempt two minutes from the end.
Lucas Joao reduced the gap deep into stoppage time but it was too little, too late for the hosts.
Reading began positively, winning a corner on the left that Pele whipped into the Birmingham area.
Centre-back Matt Miazga flicked the ball on with his head, but the City defence managed to hack it away to safety.
Birmingham replied with a quick break from Jude Bellingham, who ran through unchecked from deep midfield. But his final shot lacked precision and was comfortably blocked.
Reading again threatened from a Pele corner, with Miazga once more on the end of it. This time, his glancing header flew wide of a post, with goalkeeper Connal Trueman untroubled.
City were then dealt a blow when central defender Jake Clarke-Salter had to be replaced by substitute Wes Harding.
Clarke-Salter fell awkwardly, after a foul from Meite, and left the pitch slowly with what appeared to be an arm injury. He was later taken to hospital by ambulance.
Reading upped the tempo and were almost rewarded when Garath McCleary crossed from the left.
Meite still had much to do but wildly miscued his attempted shot and the half-chance went begging.
A patchy game came to life shortly before half-time, with Birmingham going in front in the 41st minute.
Josh McEachran lost control as he weaved into the home area and the ball looped off Morrison and over keeper Rafael.
Four minutes later, Reading drew level.
Pele slung over yet another excellent corner and Meite stooped to head in from close range.
City opened encouragingly in the second half, with Ivan Sunjic firing narrowly over from 25 yards, Gimenez shooting wide and Jacques Maghoma striking the crossbar from long distance.
However, Bela then made no mistake from an expertly guided free-kick for his first goal for the club.
Reading responded, with captain Liam Moore nodding against the bar from a Pele corner.
But Birmingham settled it in the 88th minute after Gimenez tucked home after his initial effort had been blocked.
Joao did strike from close range for Reading, from a Charlie Adam free-kick in time added on, but Blues held firm.
Stay updated with the latest news, gossip and football stories by following us @Football_P