Reading ended a run of two straight defeats with a win on the road as Lucas Joao and Michael Morrison scored to help earn three points at Ashton Gate.
Joao tallied his 17th Championship goal of the campaign in the 42nd minute, before Morrison scored a spectacular goal after going on a mazy run to complete a quickfire double before half-time.
The win sees Reading stretch their lead over sixth-placed Bournemouth to six points, before the Cherries play their game in hand tomorrow night against Rotherham.
There was more bad injury news for Reading, after learning the news that John Swift was to miss at least six weeks, Josh Laurent was also confirmed as unavailable for the Royals’ trip to Bristol City.
However, it wasn’t all doom and gloom on the injury front as captain Liam Moore and George Puscas both returned to the squad to be named among the substitutes.
It was a slow burner of a half, but with a common theme as Reading dominated control of the ball.
Lucas Joao was often the target of some hopeful long balls, but the first of which was overhit from Michael Olise as he searched for the top scorer.
Tomas Esteves, who was deployed further forward on the wing, ventured forward into the box and battled well but no one could get on the end of his cross before the ball broke to the opposite side and Omar Richards’ looping cross was cleared.
Esteves then must have thought he had opened the scoring in the 22nd minute when an aftermath of a corner broke his way and he fired a volley goalwards, but it was blocked by a crowd of Bristol defenders.
Bristol were struggling to have any sustained possession as Andy Yiadom got forward into the box and pulled the ball back for Ovie Ejaria, who almost beat goalkeeper Daniel Bentley with a deflected effort that dribbled just wide of the post.
Ejaria then danced his way past a defender and got into the box on the wide left and pulled the ball back for Omar Richards whose shot looked destined for the net but was hooked off the line by Jack Hunt.
An opening goal looked inevitable for the Royals who continued to create chances and they finally found the breakthrough in the 42nd minute through Lucas Joao who netted his 20th goal in all competitions this season.
Olise’s free-kick was met by Joao who took an immaculate first touch before firing the ball past Bentley at the near post to give the Royals a deserved advantage.
Reading pushed for a second before the break and Andy Rinohmta tested the hands of Bentley from a tight angle in the box as he lashed the bouncing ball towards goal, but with no one in the middle to latch onto the rebound.
However, Reading didn’t relent and found a second to double their advantage.
Michael Morrison burst through the centre of the pitch, traded a pass with Joao who flicked the ball into his path, and the defender impressively finished the move as he broke into the box and found the net via a deflection which looped up and over the Bristol keeper.
After a disappointing first-half, the Robins had a sight of goal within the first minute of the second 45 as Henri Lansbury’s corner found Tomas Kalas, but his header only forced a routine catch from Rafael Cabral.
Another excellent piece of hold up play from Joao allowed Esteves to overlap on the right and receive the ball, and his shot whistled just past the far post from an acute angle as Reading looked to step up their intensity.
The Royals were back on the front foot and Alfa Semedo came inches away from making good enough contact in the middle after a brilliant run and delivery from the left by Richards.
Chances kept coming the way of the visitors who were failing to punish Bristol in the second-half as Olise brought Reading forward and slipped the ball to Esteves who had his shot blocked behind for a corner.
The resulting corner presented a chance for Tom McIntyre who raced onto the delivery from Olise and forced Bentley to put it behind for another corner.
Veljko Paunović’s first change saw Tom Holmes introduced to the game with 15 minutes left as he took the place of Esteves.
With five minutes to go, Joao and Ejaria were given a rest to be replaced by George Puscas and Lewis Gibson.
Reading held out to earn three points in a dominant display as they also earned their 13th league clean sheet of the season.
Reading will be looking to avoid three successive home defeats when they host eighth-placed Middlesbrough at the Madejski Stadium on Saturday (3pm).
Bristol City: Bentley, Hunt, Kalas (c), Moore, Mariappa, Vyner, Nagy, Lansbury, Paterson, Wells Diedhou
Subs: O’Leary, Towler, Sessegnon, Massengo, Bakinson, Pearson, Palmer, Semenyo, Bell
Reading: Rafael, Yiadom, McIntyre, Morrison (c), Richards, Rinomhota, Semedo, Ejaria, Esteves, Olise, Joao
Subs: Southwood, Moore, Gibson, Holmes, Tetek, Onen, Aluko, Baldock, Puscas
Goals: Lucas Joao 42′, Morrison 45′