There was a welcome return for Kevin McNaughton and Peter Whittingham, while Chris Burke made the Bluebirds bench.
Wales international Simon Church was a substitute for the Royals, who fielded former City star Jobi McAnuff out wide.
Reading keeper Adam Federici was much the busier in the opening minutes going down low to save from Stephen McPhail and punching clear as City won two quick corners.
The visitors then settled down and Jimmy Kebe looked dangerous down the right flank as they tried to catch City on the break.
Photo slideshow
It was turning out to be a tough examination for the Bluebirds who found themselves on the defensive for much of the opening half hour. A packed Reading midfield stifled any creative play leaving Jay Bothroyd and Michael Chopra with very few scoring opportunities.
Five minutes before the break, Kelvin Etuhu skipped a couple of tackles and went for goal but Federici dived low to palm behind for a corner.
Ross McCormack started the second half in place of Chopra as the Bluebirds looked to cement a place in the play-offs, but it was Brian Howard who went close five minutes into the second period with a drive that whistled over the City crossbar.
A superb pass out of defence by McCormack sent Bothroyd racing on goal, but his early shot was pushed behind by Federici.
Church came off the bench just after an hour, but it was like-for-like as he replaced Shane Long to become Reading's lone striker.
They struck the angle of the Cardiff post from a Church header in the 65th minute as the Bluebirds failed to deal with a corner.
Burke and Aaron Wildig replaced Etuhu and Joe Ledley in the 70th minute, but it was Reading who remained on top to the final whistle, with the Bluebirds looking a very tired outfit.