Frederic Piquionne scored on his debut as Doncaster ended a run of eight games without a win to move to within three points of Nottingham Forest.
Piquionne, who joined on loan from West Ham on the day of the game, drove in from 30 yards just before half-time.
Kyle Bennett doubled Doncaster's lead from El-Hadji Diouf's cross seconds after the break.
Although Dexter Blackstock finished off a neat move just after the hour, Forest slipped to a damaging loss.
Defeat was their 11th at the City Ground this season, and their position is not helped by the fact Doncaster have a game in hand.
Marcus Tudgay suffered an injury in the warm-up, meaning Forest manager Steve Cotterill had to bring in Robbie Findley.
Piquionne, who has joined Doncaster on a month's loan, opened the scoring in some style a minute before the interval when he found the top corner from long range.
Bennett fired in from close range a minute into the second period, and moments later he was allowed room to break from midfield and hit a 25-yard shot that was tipped on to the post by Lee Camp.
Blackstock pulled one back after passes from Adlene Guedioura and Chris Gunter but Forest never threatened an equaliser.
Nottingham Forest manager Steve Cotterill:
"It was a disappointing performance and we didn't show any signs of that in the last three or four games - none whatsoever.
"I know one thing - I am pretty angry at the moment. But I will lift myself up. I'll be fine. The players would have been in tomorrow anyway but we'll work with them and try and recover as quickly as we can.
"We've just had two fantastic results away from home and we come back and kick ourselves in the teeth with this. It's not acceptable."
Doncaster manager Dean Saunders:
"Someone mentioned to me that [Piquionne] normally scores on his debut and it was a great strike. He was struggling fitness-wise but he certainly made an impression.
"As a team I thought we played really well and knocked the ball about great. In fact, it's probably the best we have played since I've been at the club.
"It's a massive result. I would have been happy if we had played terrible and won but the fact is that we did very well.
"We had to make sure that Forest didn't go nine points clear of us but that brings it back to three and we have a game in hand."