Match ends, Birmingham City 1, Reading 2.
Captain Jobi McAnuff scored twice to move Reading into the play-off places and inflict more home woe on struggling Birmingham in the process.
McAnuff opened the scoring against the run of play, finding the bottom corner before the break after the hosts failed to clear a Royston Drenthe cross.
Birmingham quickly equalised through a Paul Caddis penalty after Callum Reilly was fouled by Kaspars Gorkss.
But McAnuff converted Chris Gunter's low cross to secure a late win.
The victory ensured Reading capitalised on Nottingham Forest's heavy 5-0 defeat by Derby to leapfrog the Midlanders in the table and occupy the sixth and final play-off spot.
At the other end of the table, Birmingham are five points clear of the relegation zone and remain without a home win since October.
The Blues have now lost four of their last five games, with their last win a 2-1 victory at Blackpool on 22 February.
Birmingham began well, with Federico Macheda forcing Alex McCarthy into a reflex save. But after a promising period, the hosts fell behind.
Drenthe made inroads down the right for Reading before crossing into the box and when the home side failed to clear, McAnuff had time and space to hit the target.
Four minutes later, however, parity was restored as Gorkss was penalised for tripping Reilly inside the box. Referee Dean Whitestone pointed to the spot and Caddis levelled.
Birmingham were lively going forward and Macheda again went close, heading onto the crossbar.
But Reading were more clinical in front of goal and McAnuff struck at the far post eight minutes from time to earn his team a valuable win.
Birmingham manager Lee Clark:
"I feel really disappointed for the players because the one result that shouldn't have happened was a defeat for us.
"The minimum we should have got was a point. We played good stuff, we competed with a really good team and it's tough for the players to take.
"We have to regroup. There were a lot of positives to take from this but the lads are hurting and it's a quiet dressing room."
Reading manager Nigel Adkins:
"They were two excellent goals and, watching it back, two excellent footballing goals.
"I'm surprised [McAnuff] hasn't scored more and it's not as if he's not had chances but it's great that he's gone and scored them here and all being well he'll go on a nice run now.
"We wanted to win the division but great credit to Leicester and Burnley for what they've done so far this season. We're in the play-off race and it's a very exciting time in the season for everybody."
- 36HuwsSubstituted forBlackettat 29'minutes
- 12NovakSubstituted forIbeat 45'minutesBooked at 71mins
- 22ShinnieSubstituted forZigicat 76'minutes
- 20GuthrieBooked at 67mins
- 19Robson-KanuSubstituted forMcClearyat 55'minutes
- 9Le FondreSubstituted forPogrebnyakat 55'minutes
- 10DrentheSubstituted forBlackmanat 87'minutes
- Dean Whitestone
- Shots on Target
Second Half ends, Birmingham City 1, Reading 2.
Foul by Garath McCleary (Reading).
Jordon Ibe (Birmingham City) wins a free kick in the defensive half.
Nick Blackman (Reading) wins a free kick in the attacking half.
Foul by Callum Reilly (Birmingham City).
Corner, Birmingham City. Conceded by Kaspars Gorkss.
Attempt blocked. Chris Burke (Birmingham City) right footed shot from outside the box is blocked. Assisted by Nikola Zigic.
Corner, Birmingham City. Conceded by Alex McCarthy.
Attempt saved. Nikola Zigic (Birmingham City) header from the centre of the box is saved in the bottom right corner. Assisted by Chris Burke with a cross.
Offside, Birmingham City. Darren Randolph tries a through ball, but Federico Macheda is caught offside.
Substitution, Reading. Nick Blackman replaces Royston Drenthe.
Offside, Reading. Alex McCarthy tries a through ball, but Pavel Pogrebnyak is caught offside.
Goal! Birmingham City 1, Reading 2. Jobi McAnuff (Reading) left footed shot from very close range to the high centre of the goal. Assisted by Chris Gunter following a fast break.
Attempt missed. Pavel Pogrebnyak (Reading) left footed shot from the centre of the box is too high.
Attempt saved. Chris Gunter (Reading) right footed shot from very close range is saved in the centre of the goal.
Attempt saved. Jobi McAnuff (Reading) right footed shot from outside the box is saved in the centre of the goal. Assisted by Danny Guthrie.
Attempt missed. Alex Pearce (Reading) header from the right side of the six yard box is close, but misses to the right. Assisted by Danny Guthrie with a cross following a set piece situation.
Royston Drenthe (Reading) wins a free kick in the attacking half.
Foul by Paul Robinson (Birmingham City).