The Royals showed the resilience to bounce back from the disappointment of conceding two sloppy equalising goals to edge over the line in a five-goal affair at the Madejski this afternoon - picking up their third win in four home games at home.
- Méïté slots in for the Royals early on with a fine instinctive finish
- Pack equalises midway through first half, before Kelly scores screamer in first half added time
- Brownhill equalises deep into stoppage time in first half as teams are level at the break
- Bacuna hands the hosts the lead for a third time, collecting Barrow's pass and finding the bottom right corner.
Paul Clement handed Academy youngster Andy Rinomhota a full league debut, starying the midfielder in place of John Swift who dropped to the bench. Sam Walker replaced the injured Anssi Jaakkola between the posts, while Mo Barrow returned to the squad to start on the wing.
Barely a minute was on the clock when play was stopped abruptly for a clash of heads between Yakou Méïté and City’s Tomas Kalas – the ball looped up and both players went for it, but both were seen to and declared fit to carry on.
But it wasn't long before the Ivorian was on the scoresheet for the fourth time in as many matches. The City defence was carved open with an incisive ball into the waiting Méïté in the area, taking a touch and slotting comfortably past Max O'Leary to give the Royals the perfect start.
The Royals controlled the tempo in the early stages, breaking forward again with Sam Baldock finding Mo Barrow on the right. The winger fired a ball into the box, half-cleared into the path of Yiadom on the edge of the box - whose volley wasn't troubling O'Leary's net.
Reading kept up the pressure, with Leandro Bacuna finding space 20 yards out and facing goal. He's scored from that kind of range before as a Reading player, but this particular strike landed on the top of O'Leary's goal.
Then, completely against the way the first half had been going, the visitors drew level.
The Robins found space on the left flank and crossed in, Reading only cleared into the path of Liam Walsh, who threaded through the gap with captain Marlon Pack chasing.
He got behind his man, beat the offside trap and slipped a finish underneath Walker to equalise midway through the first period.
John O'Shea had to be alert to stop the visitors going ahead soon afterwards, blocking a Walsh drive on the turn before getting his body behind the follow-up, with a third strike saved well by the on-rushing Walker.
The tide had turned after Bristol City drew level, with Walsh driving through midfield and playing forward to Famara Diédhiou from range. The Senegalese striker controlled with his right foot and rifled a strike just past the upright, with Walker diving at full stretch.
After taking a couple of knocks and receiving treatment on a couple of occasions in the half, goalscorer Méïté had to be withdrawn with what looked like a persistent injury.
The Robins kept pressing before the break, lofting in a free-kick with Pack meeting it in the box, his header saved with an improvised header from Walker - with the players only a yard apart in the air.
Then came an absolute belter for the Royals to re-take the lead. Bacuna spread the play to Blackett on the left - who cut back for Liam Kelly waiting on the edge of the box.
He took a touch and curled a wicked effort past O'Leary and into the top corner.
Straight from kick-off, though, the visitors threw men forward and managed to force the equaliser. Despite gallant defending from Yiadom to block an initial strike from Matty Taylor, the ball found its way back into the area to find Josh Brownhill unmarked, nodding past Walker to end a frantic half of football at Madejski Stadium.
Half-time: Reading 2-2 Bristol City
Both teams had chances early in the second period - Walker behind a low hooked effort from Brownhill before Bacuna won possession on the edge of the City box but saw his left-footed drive blocked back a sliding challenge.
On the hour, frustration saw Leandro Bacuna and Liam Walsh booked for tangling after the Royals midfielder had been fouled. Walsh fizzed an effort from range just wide of the bottom right corner soon after as City sought the lead for the first time in the match.
But it was the home side who took the lead once more via a lovely passing move down the left. Bacuna and Barrow combined to excellent effect and Barrow's cut back refound Bacuna who controlled with his first touch and then found the bottom right corner with his second for 3-2.
Substitite Andreas Weimann was brought down by Andy Rinomhota as City threatened to break and look for another leveller, but Brownhill's set piece skidded harmlessly wide.
Lloyd Kelly and Jamie Paterson were introduced by Lee Johnson and the outside of the right post came to Reading's rescue when a cross was floated in from the left and Brownhill rescued it from the byline at the back post only to stab it against the woodwork and scuff a recycled cross.
John Swift was introduced for Rinomhota with 13 minutes left on the clock but the visitors fluffed a half chance to equalise when a corner wasn't cleared and the ball fell to the feet of Diedhiou who slipped as he looked to angle an effort at goal.
The Robins were looked to route one and Reading were having to repel countless crosses, but Swift almost launched a counter attack with a lovely ball in behind the defence for Baldock to chase. He was scythed down before he could make any inroads towards goal though.
Three minutes remained and a long ball fell kindly for Weimann who drilled a shot towards the Reading goal only for Walker to parry well with his body.
Five minutes of injury time were signalled by the fourth official before Diedhiou's downward header was comfortable for Walker to gather in as the Royals looked to dig in and cling onto victory.
Two of those minutes remained when the referee awarded City a fee kick on the edge of the box for a foul contested by John O'Shea. Walsh stepped up and arced his effort over the wall but also over the crossbar to the home fans' relief.
And after more than six minutes of added time had been played, the Royals could celebrate victory and three valuable points.
Full-time: Reading 3-2 Bristol City
Reading: Walker, Yiadom, Blackett, Moore (c), O'Shea, Bacuna, Rinomhota (Swift 78), Kelly, Méïté (McCleary 37), Barrow (Gunter 87), Baldock.
Subs: Legg, Aluko, Ilori, McNulty.
Goals: Méïté 8, Kelly 45+1, Bacuna 66
Yellow: Bacuna, Rinomhota, Yiadom, Baldock, Gunter.
Bristol City: O'Leary, Dasilva, Webster, Brownhill, Diédhiou, Taylor (Weimann 63), Walsh, Eliasson (Paterson 74), Pack (c), Kalas, Hunt (Kelly 74).
Subs: Maenpaa, Baker, O'Dowda, Eisa.
Goals: Pack 23, Brownhill 45+3
Yellow: Walsh, Webster
Referee: Mr J Linington
Att: 14,455 (2,162 away)