Bristol City moved six points clear of the Championship relegation zone after seeing off 10-man Doncaster - who themselves remain in the bottom three.
Chris Wood opened the scoring for the hosts, heading home from close range, before Habib Beye was sent off for a poor challenge on Cole Skuse.
Kalifa Cisse headed their second before El-Hadji Diouf's own header 15 minutes from time set up a nervous finale.
Late on, Billy Sharp's volley from 18 yards was well saved by David James.
Rovers' forward James Hayter should have opened the scoring but shot tamely straight at James from close range after Diouf's cross had landed at his feet.
Hayter was made to pay for his miss as on-loan West Brom forward Wood headed the hosts into the lead.
Skuse's pinpoint cross to the near post found Wood and he stooped down to head past David Button for a goal on his home debut.
Rovers' hopes of coming away from Ashton Gate with a share of the spoils were hit when Beye was shown a straight red card for a reckless lunge on Skuse.
From the resulting free-kick, Neil Kilkenny floated the ball in from the right touchline and Cisse rose well to head home at the near post.
Diouf headed a Simon Gillett cross across James at the back post before Sharp's volley from the edge of the box drew a fine save from City's keeper as the hosts held on to claim all three points.