Two-first half goals left City with too much to do against an in-form Reading side who extended their winning streak to five matches at the Madejski Stadium.
Garath McCleary’s luck was in when the ball rebounded back into his path after Frank Fielding had saved his controversially-awarded penalty, before Roy Beerens volleyed Reading’s second before the 20-minute mark.
City pressed hard for a route back into the contest, but spurned chances to halve the deficit until Gary O’Neil struck his first goal for the club three minutes from time in front of around 3,500 travelling supporters.
Lee Johnson named an unchanged starting line-up after an improved display went unrewarded at Birmingham City last time out.
But Reading had won their last four league games without conceding a goal and that confidence was evident from the start.
The Royals got on the front foot early and forced a couple of corners before they were gifted the chance to edge in front.
A seemingly harmless low pass into the City box was running out for a goal kick only for Hordur Magnusson to clip the heels of young striker Dominic Samuel.
There was certainly no intent on the part of the Icelander, who was not even making a tackle. Referee Tony Robinson appeared to see it the same way, but then awarded a spot-kick on the advice of his flagging assistant, who felt the defender had impeded his opponent – deliberate or not.
Still there was a temporary reprieve for the visitors as Fielding guessed right and denied McCleary to make his second successive penalty save, but luck was not on City’s side as the ball rebounded back into the path of the taker, who gleefully slotted into the other corner.
Johnson’s men were determined to strike back quickly and nearly did so. Aden Flint stayed forward from a set-piece and fired a loose ball goalwards from 20 yards with a shot that only narrowly rolled past the post with Ali Al Habsi rooted to the spot.
City were only just getting a foothold in the contest when Reading doubled their lead on 19 minutes, as Chris Gunter escaped down the right flank and chipped in a cross met firmly on the volley by Beerens, whose crisp low shot left Fielding no chance.
Again City responded well, but must have known the size of the task ahead. Tammy Abraham combined well with Bobby Reid, who hit a powerful drive pushed aside by Al Habsi at his near post.
From the resulting corner, Marlon Pack’s clever delivery along the ground picked out Lee Tomlin, who had peeled away to meet the ball first time only to see his shot fly fractionally too high to nestle in the top corner.
Then Jamie Paterson surged towards the byeline and produced a cross begging for any kind of touch from Reid.
In fairness the Bristolian provided it, throwing his head at the ball, but somehow the stricken Al Habsi managed to claw it out of his goal and make what looked an impossible stop.
It was a spell of pressure in which you felt City had to score if they were to give themselves a chance, but instead they trotted down the tunnel heads bowed at the interval, faced with a mountain to climb.
Nobody could say City had not carried a threat and that remained the case after the restart.
Abraham immediately had the visitors back in the ascendancy with a driving run from kick-off before shooting over from 20 yards.
It was an instant statement that the game was not yet over. Next Abraham faced up ex-Ashton Gate loanee Liam Moore and picked out O’Neil in a great position, but the skipper’s shot was mistimed and easily gathered by Al Habsi.
McCleary fired a warning shot on the break that was beaten away by Fielding, just as a reminder that overcommitting bodies forward could be fatal.
But City, backed by a wall of red behind Al Habsi’s goal, kept pushing. O’Neil’s low shot left the Reading keeper scrambling to his right and grateful to push the ball behind for a corner, from which the hosts survived an uncomfortable game of pinball.
Johnson is rarely averse to throwing caution to the wind and turned to his bench before the hour mark to introduce Aaron Wilbraham and Callum O’Dowda for Mark Little and Paterson.
Wilbraham’s influence was clear when he found Abraham with a slide rule pass after the striker cleverly peeled away to find space, but the Chelsea loanee was stopped in his tracks by the last defender.
Then Wilbraham turned to shoot when picked out by one of numerous Joe Bryan crosses, but again there was a blue and white shirt in the way.
As the clock ticked down into the last 20 minutes, Reading were able to re-establish some control and take the sting out of City’s dwindling momentum.
Johnson responded with his final change, introducing Gustav Engvall for his first Sky Bet Championship appearance with 14 minutes to go, sacrificing Tomlin in the process.
The willing Abraham still carried a threat and embarked on another run into home territory. When he was tackled the ball ran invitingly for Reid on the 18-yard line, but captain Paul McShane threw himself in the way in an impressive display of commitment that underlined why the Royals rarely concede goals.
There was still time for City to rescue an unlikely point. O’Neil lofted a cross to the back post headed down by Wilbraham to cause chaos in the Reading box.
When the hosts failed to clear, the ball came back out to the veteran midfielder, who had time to weigh up his options before picking his spot with a well-placed shot from 20 yards to deceive Al Habsi and give the travelling masses a glimmer of hope.
Abraham saw a chance deflected behind as City forced a pair of last-gasp corners, but ultimately it would not be enough, leaving Johnson to rue the way his team started the game – not the way they finished it.