A goal in each half in a vintage away performance ensured Rovers continued their unbeaten run and returned to winning ways in sensational style against Bristol City.
Despite ringing the changes, Rovers were superb throughout at Ashton Gate, with Bradley Johnson getting the visitors off to the perfect start after just two minutes.
Rovers limited City to very few chances and it was left to Adam Armstrong to seal the perfect performance on the road late on and make it four points from two tricky away tests at Swansea City and now Bristol City.
Tony Mowbray made six changes to the starting XI from the team that began at Swansea just three days earlier, with Amari'i Bell, Johnson, Elliott Bennett, Lewis Holtby, Ben Brereton and Sam Gallagher all coming in.
The half-dozen heading out were Stewart Downing, Corry Evans, Adam Armstrong, Joe Rothwell, Danny Graham and the suspended Bradley Dack.
Dack missed out completely following his sending off in south Wales and wasn't involved in the side at Ashton Gate.
It was one of Mowbray's alterations was the man who lashed the visitors into an early advantage just two minutes into the contest.
Bell worked hard to win an early corner before Holtby was the orchestrator in a simple corner kick routine that saw his low ball in emphatically thumped into the back of the net by Johnson.
Lee Johnson's outfit went in search of a quickfire equaliser, with Christian Walton producing a terrific stop to turn behind Niclas Eliasson's deflected attempt before Darragh Lenihan was in the right place at the right time to block Andreas Weimann's effort soon after.
Ashley Williams was next to go close for the hosts but the Welshman headed wide of target after Niclas Eliasson's cross was inadvertently flicked on by Brereton.
It was an open game and a Gallagher snapshot almost caught out Dan Bentley but the City goalkeeper produced an excellent stop to beat away the striker's dipping volley.
Johnson almost doubled his and his side's tally with eight minutes of the first half remaining, but after being picked out by Brereton, the 32-year-old's placed attempt from the edge of the box was too close to Bentley and comfortable for the stopper to hold.
Rovers went into the break with the advantage, which was just deserved for a controlled first half performance.
The second half was uneventful in the main before substitute Jack Hunt's cross was skewed wide at the back post by Famara Diedhiou.
Mowbray made his first change with 21 minutes remaining by throwing Armstrong into the game in place of Brereton, who had put a good shift in for his first game back in the first team.
Rovers had to wait until the final 13 minutes for their first chance an with it thet grabbed a second goal through substitute Armstrong.
Johnson won the ball up high and passed through to Armstrong with just Bentley to beat. The 22-year-old raced forward and produced a calm, composed finish under the 'keeper and turn 1-0 into 2-0.
From there City were done. Rovers continued to hold possession and earn a fantastic three points in our best away display of the season.
Bristol City: Bentley, Nagy (O'Dowda, 59) , Brownhill (c), Diedhiou, Weimann, Eliasson, Kalas, Rowe (Szmodics, 69), Williams, Pereira (Hunt, 59), Massengo.
Unused substitutes: Maenpaa, Baker, Smith, Semenyo.
Booked: Weimann, 79.
Rovers: Walton, Nyambe, Lenihan, Adarabioyo, Bell, Travis, Johnson, Bennett (c), Holtby (Rothwell, 80), Brereton (Armstrong, 69), Gallagher.
Unused substitutes: Leutwiler, Graham, Downing, Evans, Buckley.
Goals: Johnson, 2, Armstrong, 78.
Booked: Gallagher, 33, Lenihan, 86.
Referee: John Brooks.