A brace from Andreas Weimann saw Reading dealt their first home defeat of the new league season as Bristol City took three points at the Select Car Leasing Stadium.
It was a blistering start from the visitors who raced into a two-goal lead in the opening 14 minutes through Weimann and Chris Martin.
The Royals responded as young forward Femi Azeez scored for the second consecutive game.
But Bristol made an equally fast start in the second half and extended their lead when Weimann grabbed his second in the 52nd minute to put Bristol on the way to victory.
The Royals made it an interesting end to the match as captain Liam Moore took matters into his own hands with an excellent goal to reduce the deficit in the 81st minute.
But Reading couldn’t find an equaliser as they fell to their second defeat in three matches.
Reading were dealt more unfortunate injury news prior to kick-off as it is expected that striker Lucas João will miss the next few weeks of action.
He was replaced up front by George Pușcaș who came in for his first league start of the season.
Bristol City gave their vocal support at the opposite side of the ground plenty to cheer about as they opened the scoring just five minutes into the match.

A long throw-in was hurled into the box and met by striker Chris Martin who flicked the ball onto Andreas Weimann who guided a header into the far corner beyond the reach of Rafael Cabral.
Bristol’s long throw continued to be a threat to Reading as it led to a chance on the edge of the box for Matty James who struck a fierce shot that was deflected behind for a corner.
After a dominant start to the game, the Robins had a two-goal lead to show for it in the 14th minute.
Again they were first to the ball after a free-kick was sent into the box and Martin got on the end of the flick on to control a volley past Rafael.
The lively start to the action continued as Reading grabbed themselves a lifeline in the 19th minute after a terrible start.

Femi Azeez slammed a shot into the roof of the net from close range to put the Royals back in the contest after Josh Laurent’s driving run into the box.
Reading were almost undone at another set-piece as Tomáš Kalas was given a free header at the back post, but his effort went straight down the throat of Rafael who gathered comfortably.
Pressing forward for an equaliser, Tom McIntyre almost found himself at the right place at the right time as Ethan Bristow’s cut back found him in the box, but a crucial block deflected his effort behind.
The frantic first 32 minutes of action was brought to a temporary halt as Royals skipper Liam Moore received treatment.

After an eventful half of football, Reading found themselves a goal behind at the break.
Veljko Paunović made us of a substitute at the break as on-loan Watford midfielder Tom Dele-Bashiru was sent on for his Royals debut in place of Bristow.
The Robins restored their two-goal lead early in the second half as Weimann bagged his second of the night.
Scott found Weimann in the box, who showed great composure to take the ball past Rafael and find a gap to put the ball between three defenders trying to block the ball off the line.
Reading had an appeal for a penalty turned down for handball when Pușcaș struck a shot at the arm of a Bristol City defender, but the referee waved play on.
Swift found the head of Moore but he could only loop a header over the bar from the resulting corner.
Dele-Bashiru looked to provide a spark in attack for the hosts when he got down the byline and almost found Pușcaș lurking in the centre had it not been for a vital interception.
Paunović made his second change of the night with 15 minutes to go as Jahmari Clarke replaced Pușcas.
Reading fought back to within a goal yet again as Moore drove forward and sent a low strike into the bottom corner to set up a grandstand finish to the match with just under 10 minutes to go.
Bristol had the chance to seal the points with a fourth but Kasey Palmer’s strike cannoned off the post before Rafael saved Weimann’s follow up.
The home side pushed hard to find a leveller but they were denied as Bristol held on to claim all three points.
Reading: Rafael, Yiadom, Morrison, Moore (c), McIntyre, Bristow, Rinomhota, Laurent, Swift, Azeez, Pușcaș
Subs: Southwood, Holmes, Tetek, Leavy, Camara, Dele-Bashiru, Clarke
Bristol: Bentley (c), Simpson, Kalas, Atkinson, Dasilva, James, King, Scott, Pring, Weimann, Martin
Subs: O’Leary, Vyner, Baker, Bakinson, Massengo, Palmer, Wells
Goals: Weimann 5′, 52′, Martin 14′, Azeez 19′, Moore 81′