A goalkeeping blunder by Jan Budtz put Doncaster on the path to their first defeat in eight games.
Budtz seemed to be caught in two minds when Ian Breckin lobbed a hopeful looking ball into the penalty area and he was made to pay for that fatal hesitation when Kris Commons nipped in to score.
Doncaster had been the better side up to that stage but their attacks lacked penetration as Forest defended with plenty of spirit.
Graeme Lee had a header cleared off the line by John Curtis following a corner in the ninth minute and Kevin Horlock hit a thundering shot over the top 10 minutes later.
Sean McDaid did well to prevent a tricky situation in the 25th minute when he took the ball off Nathan Tyson's toes just as he was about to shoot with the goal at his mercy.
The game changed once Forest had taken the lead as Doncaster seemed rattled and it should have been 2-0 in the 29th minute when Tyson set up Grant Holt who somehow failed to hit the target from close range.
Paul Green fired into the side-netting following a corner but Holt made amends for his earlier miss when he snatched Forest's second goal early in the second half.
Holt hammered home an angled drive following good work by Sammy Clingan and Tyson following a rare mistake by Horlock who gave the ball away in midfield.
Commons had a 25-yard free-kick parried by Budtz at full stretch in the 52nd minute and Holt twice went close with headers which sailed just over the bar.
Doncaster pulled a goal back in the 86th minute when James Coppinger scored from the penalty spot after Clingan had brought down Green.
It led to a frantic finish with Rovers pushing plenty of players forward but the Forest defence held firm despite the home side's attempts to snatch an equaliser.
Horlock had a cracking effort blocked in the 90th minute and McDaid had another powerful shot saved by Rune Pedersen in injury time.