Jordan Rhodes's double gave Michael Appleton his first league victory at Blackburn to leave Bristol City five points adrift of safety.
Rhodes made it 1-0 when City failed to clear Morten Gamst Pedersen cross.
Scotland international Rhodes doubled the hosts' lead, scoring his 100th league goal after collecting Danny Murphy's long pass and finishing.
Steven Davies went close three times for Sean O'Driscoll's side, but the Robins remain 23rd in the Championship.
The relegation-threatened side had won their previous two games and the visitors created the early opportunities.
Davies's 25-yard free-kick skimmed the top of the net, before the former Tranmere man failed to take advantage of space in the area, firing his header straight at Rovers goalkeeper Jake Kean.
It was the home side's turn to go close from a set-piece, with Norwegian Pedersen striking the crossbar from a left-footed free kick.
Bristol City had been given a number of warning signs as Rovers' pressure grew before Pedersen's cross broke to Rhodes in the 28th minute.
The former Huddersfield striker turned and shot past Tom Heaton and into the corner of the net to give the home side the advantage.
Davies then missed another chance as City looked to restore parity, with his shot flashing wide on the stroke of half-time after good work from Sam Baldock.
It would ultimately prove costly as Rhodes scored a landmark 100th league goal in English football, running on to a long pass from Danny Murphy, shrugging off James Wilson and firing the ball low to Heaton's right.
That essentially finished the game as a contest, with Scott Dann and Marcus Olsson both coming close to adding to Blackburn's tally.