Although they did have chances to score, City always looked second best and could have lost far more easily. They were in trouble after their goalkeeper Tommy Wright made a mistake. A superb through ball by Jason Bowen put Carl Asaba in the clear. His shot struck Wright, but the ball spun into the path of Lee Hodges, who tapped in.
On the half hour, Asaba's overhead flick found Martin Williams. He chested the ball back into the path of Ray Houghton, who lashed it into the corner of the net for his first League goal for Reading.
City's burst of enthusiasm at the start of the second half quickly fizzled out, and although Reading wasted their chances, Asaba thumped in his 12th goal of the season as the game drifted into injury time.
Nottingham Forest, without Pierre van Hooijdonk, missed a chance to regain the First Division leadership from Middlesbrough when they drew at Tranmere Rovers.