Reading ended their five-match run without a Championship win by beating Bristol City 3-1 at the Madejski Stadium.
There was little to choose between the sides in a drab first half, though home forward Yakou Meite forced a fine save from City goalkeeper Daniel Bentley.
Reading went ahead nine minutes after the break when Ovie Ejaria's crisp drive was deflected past Bentley.
City equalised through substitute Nahki Wells in the 73rd minute but Reading regained the lead when Meite guided home three minutes later.
Lucas Joao completed the scoring in stoppage time, when turning on to a Meite cross and beating Bentley.
Reading's impressive opening to the campaign, which included seven wins in an unbeaten eight-match run, came to an abrupt halt with four successive defeats before they stopped the rot with a 1-1 draw at Millwall on Wednesday night.
City had also made a bright start to 2020-21, with four straight victories, but a winless run of five fixtures saw them drop to 10th place.
A fine recovery spell of three consecutive wins was followed by a 0-0 home draw with Watford in midweek.
With the floodlights already on in the mist and gloom, Reading made an encouraging start.
City responded after a poor pass in midfield from Josh Laurent, which was quickly latched on to by Callum O'Dowda.
But after making promising forward progress, O'Dowda's attempted cross was weak and easily blocked.
Reading at last got going, with Laurent shooting wide after finding space and Meite testing Bentley from distance.
Bentley fumbled Meite's first effort but swiftly gathered the loose ball.
From an Ejaria cross, Bentley then miscued his punch – giving Reading a fortunate corner.
However, from the resultant set-piece from Michael Olise, Meite nodded over at the far post.
Bentley then looked far more assured when making an excellent sprawling save from Meite's fierce snapshot on the turn.
Meite was kept out again by Bentley early in the second half before Reading went ahead in the 54th minute.
Ejaria cut in from the left wing and his well-struck effort took a wicked deflection off defender Zak Vyner before beating Bentley.
Home keeper Rafael saved a Jay Dasilva effort from a rare City attack, while City defender Taylor Moore was booked for a poor challenge on Laurent.
Reading manager Veljko Paunovic was also cautioned by referee Jeremy Simpson for his touchline protests.
City levelled 17 minutes from the end, when Wells took advantage of a goalmouth scramble from close range.
But Meite struck three minutes later on the break, guiding his shot past Bentley after a superb pass from Ejaria.
In time added on, Meite set up Joao for his 12th goal of the season with a fine cross from the right.