Reading were left to rue missed chances as Aden Flint drove an 84th minute winner past Vito Mannone to settle matters at the Madejski, ending a long unbeaten home streak for Jaap Stam's Reading in the process.
- Aluko and Edwards made Royals debuts, while Bodvarsson makes home bow
- Baker shown just a yellow after cynically tripping Barrow at end of first half
- Fielding saves well from Barrow and Kelly to deny dominant hosts
- Bodvarsson skews wide from Aluko cut back late on
- Flint wins it with late right-footed drive that Mannone can't keep out
Sone Aluko was handed his Royals debut, starting for Jaap Stam's side for the first time since signing for the Royals near the end of the transfer window. Fellow new arrival Dave Edwards was named on the bench.
The first shot at goal came from a curling set piece, won and taken by Famara Diedhiou but arced harmlessly over Vito Mannone's crossbar from 25 yards out. At the other end, Barrow whipped in a lovely cross from the left but Frank Fielding was out quickly to clasp it out of the air.
Bobby Reid came close to breaking the deadlock when he controlled a ball over the top with a cushioned first touch and then tried to loop the ball over Mannone with his second, but the ball landed on the roof of the Royals' net.
But Barrow caused more concern down the left soon after, only for his pull back to be intercepted and City to hack the ball clear. Aluko took aim for the first time as a Royal but rifled wide of the right post from distance.
But he made more of an impact with a quarter of an hour played when running at his marker he earns the space to cross from the right, and it foudn Barrow inside the box who didn't connect cleanly with a first time shot and had to watch the ball spin well wide without threatening Fielding in the Robins goal.
With 20 minutes of the half remaining, Gunter got a good block in to deflect a Joe Bryan shot away from danger. Then, at the other end Fielding was required to bring a fine low save to deny Liam Kelly's grass-cutter from 25 yards out.
Mannone was quick to leap on top of a tame Callum O'Dowda header next as both sides sought to break the deadlock at the Madejski. And Barrow's sheer pace threatened to do just that has he picked the ball up in midfield and drove into the City box only for his canny cut back to find a Bristol City man who cleared.
Kelly swept a corner to McShane who had peeled away from his marker, but the skipper's header sailed over the crossbar from a difficult position. Then Kelly himself chanced his arm by collecting a pass in behind from Bacuna but rifling into the side netting from a narrow angle.
Bodvarsson headed harmlessly over from a Blackett cross from deep, but a mix-up between Moore and Mannone almost resulted in the ball rolling into the hosts' net - thankfully it bobbled just wide from Moore's backpass and behind for a corner.
A delightful ball from Van den Berg set Barrow away once more as half-time approached, but Baker cynically tripped the Royals winger as he sped in behind towards goal. The defender received only a yellow despite protests from the East Stand and the set piece was flicked on by McShane but bundled behind for a corner.
Kelly was to have the last chance of the half, picking up the ball in midfield, driving forward and ignoring runs to his left and right to drill low at Fielding who was down well to smother it.
Half time | Reading 0-0 Bristol City
The Royals began the second half on the front foot, with Bodvarsson escaping down the right only for Fielding to cut out his low cross at the near post. Then Barrow burst into the box, using Blackett's burst forward as a decoy, and drilled a low cross-shot that City somehow cleared.
Seven minutes into the second half, Aluko toed the ball around Fielding but too wide to take a shot at the open goal. He calmly picked out Bodvarsson with a low pass to the edge of the six yard box, but the Icelander couldn't mark his first home appearance for the Royals with a finish, snatching at the chance and mis-kicking as he leant backwards.
City survived a barrage of attacks from the home side soon after, Kelly seeing a shot headed away from the edge of the six yard box, then Barrow forcing a fine save from Fielding - the City stopper sprawling full stretch to his left to tip the ball around his post. Bacuna was next to whistle a shot inches wide from the resultant short corner and as thunder rumbled above Madejski Stadium, the Royals were pressing hard for the lead.
But the Robins came within a whisker of getting the opening goal soon after. Reid scurried forward and threaded a pass into Paterson who arrowed a shot across his body wide of Mannone's dive but also wide of the bottom left corner to the Royals' relief.
Dave Edwards replaced Kelly who suffered a knock on the hour, and the midfielder's first touch saw him connect with an Aluko cross but fail to get the power to trouble Fielding who gathered it into his body.
Bodvarsson missed a golden opportunity to hand the hosts the advantage when Aluko made progress into the box, turned his man and passed the ball back to the Icelander on the edge of the six yard box - but his miscued his shot and it spiralled agonisingly wide of the right upright.
Roy Beerens and Garath McCleary were thrown on in an attempt to separate the sides in the final quarter of an hour. But it took a superb last ditch tackle from Moore to deny Reid a shot at goal as he raced onto a one-two with seemingly only Mannone to beat before Moore's outstretched leg stepped in.
And it was City who stole it with seven minutes remaining. A ball into the Reading box wasn't cleared and it popped out to Aden Flint who drilled first time past Mannone - who got a touch but not enough to keep it out.
Five minutes of injury time were signalled and McCleary won a free kick which was swung in by Aluko, headed clear by a Bristol defender and volleyed into Fielding's arms by Beerens from the edge of the box.
Full time | Reading 0-1 Bristol City
Reading: Mannone, Gunter, Blackett, McShane (c), Moore, Van den Berg, Kelly (Edwards 62), Bacuna, Barrow (McCleary 69), Aluko, Bodvarsson (Beerens 77).
Subs: Jaakkola, Ilori, Evans, Clement.
Yellow: Van den Berg
Bristol City: Fielding, Bryan, Flint, Baker, Smith (c), Brownhill, Diedhiou (Leko 70), ODowda, Reid, Paterson, Vyner.
Subs: Steele, Wright, Woodrow, Eliasson, Pack, Magnusson.
Goals: Flint (84)
Att: 18,650 (3,391 away)