First-half goals from Chris Wood and Kalifa Cisse at Ashton Gate on Saturday helped the Robins bounce back from successive defeats to Crawley in the FA Cup and Brighton in the league.
However, they were made to hang on at the end as, despite Habib Beye's first-half dismissal for a poor challenge on Cole Skuse shortly before the hosts doubled their lead, El-Hadji Diouf's header 15 minutes from time set up a nervous finale.
Nicky Maynard was the notable absentee from Bristol City's starting line-up, the striker dropping to the bench and replaced by Albert Adomah in one of four changes made by Derek McInnes.
It was Adomah who had the first chance when his drive from long range forced Doncaster goalkeeper David Button, who then excellently tipped Richard Foster's effort round the post.
Rovers, who were unchanged from last week's goalless draw with Cardiff, grew in stature thereafter and David James had to be at his best to parry Simon Gillett's effort from just outside the area.
Billy Sharp also missed the target from a good position, while Rovers midfielder 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 profligacy as on-loan West Brom forward Chris Wood headed the hosts into a 26th-minute lead.
Skuse's pinpoint cross to the near post found Wood and he stooped down to head past Button for a goal on his home debut.
Neil Kilkenny thought he had doubled City's lead immediately after but his 20-yard strike was tipped inches wide of the post by Button.
Rovers' hopes of coming away from Ashton Gate with a share of the spoils was hit when Beye was shown a straight red card for a reckless lunge on Skuse.
There was not much contact between the two players but the former Newcastle and Aston Villa full-back's challenge was deemed too dangerous by referee Fred Graham.
From the resulting free-kick, Kilkenny floated the ball in from the right by-line and Cisse rose well to head home at the near post in the 31st minute.
Despite Doncaster struggling to keep their shape after Beye's dismissal, City failed to add to their lead before the interval.
McInnes' men continued to dominate after the interval although Doncaster looked content to keep men behind the ball and avoid a thrashing.
Wood missed the target from the edge of the area, while Foster forced Button into action from a similar distance.
From out of nowhere though, Diouf set up a nervous finale when he headed across James at the back post from Simon Gillett's cross from the left in the 75th minute.
Billy Sharp's volley from the edge of the box drew a fine save from James as City held on to claim all three points.