Match ends, Reading 0, Birmingham City 1.
Birmingham City enjoyed their first away win in 10 matches as Clayton Donaldson's late strike condemned losing FA Cup semi-finalists Reading to defeat.
The Royals, who lost to Arsenal at Wembley on Saturday, are now winless in seven Championship matches but are safe from relegation.
Reading dominated for the majority but wasted several chances.
Donaldson then headed home his 16th goal of the season on 83 minutes.
Goalkeeper Adam Federici, whose extra-time fumble led to Alexis Sanchez's winning goal at the weekend, was given a good reception from the home fans.
His side had no pressure on them, with the last lingering doubts of relegation having been removed when Millwall lost 2-0 at Blackburn Rovers on Tuesday night.
Birmingham also had little to play for, apart from trying to improve on a poor recent record of just two wins in eight league matches.
Reading, with only two wins in 13 league games and no wins in six, saw Garath McCleary fire wide, while Jamie Mackie and Nick Blackman had shots blocked.
The hosts continued to dominate after the break but were continually let down by their final product as Birmingham stubbornly held on.
Birmingham broke the deadlock when Stephen Gleeson delivered a corner from the left and Donaldson rose unchallenged to glance a header past the helpless Federici.
Reading manager Steve Clarke:
"I'd like to keep a few youngsters in and around the squad but the game on Saturday is a big game for the league because Brentford have a chance for the play-offs.
"On Tuesday, that could be a big relegation game for Rotherham. And the same in our last game against Derby, with them fighting for a play-off spot.
"It was a frustrating game tonight and we've had a few of them lately. A good performance again but no points again. I've said that a few times. It's a familiar tale for us."
Birmingham manager Gary Rowett:
"Our away form has not been good since the turn of the New Year and we wanted to do something about that.
"There was a lack of intensity in the match and it felt like and end-of-season game. We weren't as attacking as we'd have liked and we had to weather a bit of pressure from Reading. But they didn't have too many chances.
"We made some changes later in the game and it really opened up for us. We probably had more clear-cut chances in the last 15 minutes than we've had in the last five or six games. We should have gone on and scored a couple more goals."
- 12McClearySubstituted forAppiahat 63'minutes
- 11ObitaBooked at 69mins
- 19MackieSubstituted forStaceyat 63'minutes
- 22BlackmanSubstituted forNovakovichat 81'minutes
- 31CaddisSubstituted forDyerat 62'minutes
- 36FabbriniSubstituted forShinnieat 34'minutes
- 10ThomasSubstituted forGrayat 77'minutes
- Lee Mason
- Shots on Target
Second Half ends, Reading 0, Birmingham City 1.
Foul by Andrija Novakovich (Reading).
Andrew Shinnie (Birmingham City) wins a free kick in the defensive half.
Attempt saved. Clayton Donaldson (Birmingham City) right footed shot from the right side of the box is saved in the bottom left corner. Assisted by Demarai Gray.
Jordan Obita (Reading) wins a free kick in the defensive half.
Foul by Andrew Shinnie (Birmingham City).
Corner, Birmingham City. Conceded by Jack Stacey.
Corner, Birmingham City. Conceded by Michael Hector.
Attempt saved. Jordan Obita (Reading) header from the centre of the box is saved in the top centre of the goal. Assisted by Chris Gunter with a cross.
Goal! Reading 0, Birmingham City 1. Clayton Donaldson (Birmingham City) header from very close range to the bottom right corner. Assisted by Stephen Gleeson with a cross following a corner.
Corner, Birmingham City. Conceded by Chris Gunter.
Attempt blocked. Lloyd Dyer (Birmingham City) right footed shot from a difficult angle on the left is blocked.
Attempt saved. Andrew Shinnie (Birmingham City) right footed shot from the right side of the box is saved in the bottom left corner. Assisted by Clayton Donaldson.
Jem Karacan (Reading) wins a free kick in the defensive half.
Foul by Demarai Gray (Birmingham City).
Substitution, Reading. Andrija Novakovich replaces Nick Blackman.
Foul by Jack Stacey (Reading).
Jonathan Spector (Birmingham City) wins a free kick in the defensive half.
Attempt missed. Jack Stacey (Reading) right footed shot from the left side of the box misses to the right. Assisted by Jordan Obita.