Doncaster beat Notts County to leapfrog their hosts and move four points behind League One leaders Tranmere Rovers.
After a quiet first half, Lee Hughes went close for Notts before Rovers took control with two goals in two minutes.
Moments after Kyle Bennett put his free header wide, David Syers crossed for Paul Keegan to plant his header past Bartosz Bialkowski in the Notts goal.
Half-time substitute Chris Brown had time to turn in the box to fire in Doncaster's second.
The Magpies had to play the last 17 minutes with 10 men after Jordan Stewart limped off with a hamstring injury as manager Keith Curle had already made his three substitutions.
This was a fourth home league defeat of the season for Notts and they slip to sixth, now six points behind Tranmere.
Doncaster won for a third straight game and extended their unbeaten run to five matches.
VIEWS FROM THE DRESSING ROOM
Notts County manager Keith Curle told BBC Radio Nottingham:
"If I am honest about it, poor defending, shocking defending and no desire to stop the ball going into our box.
"We did not track people when they were in our box.
"We go back to the drawing board, we go back to the training ground and we will see it through."
Doncaster Rovers manager Dean Saunders told BBC Radio Sheffield:
"I just thought we were ruthless today.
"It was a real professional team performance and the players worked hard.
"I don't think Notts County really had a shot for Gary Woods to save and they're a good team.
"We were quite comfortable, scored two good goals and Kyle [Bennett] missed an open goal so we could have had a few more."
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +3:13
Inswinging corner taken right-footed by Alan Judge, save by Gary Woods. Shot from inside the six-yard box by Ashley Eastham goes wide right of the target.90:00 +2:01
Centre by Alan Judge, save by Gary Woods.90:00 +0:25
Inswinging corner taken from the left by-line by Alan Judge.90:00 +0:25 Booking
Booking Neal Bishop goes into the referee's book for unsporting behaviour.89:46
Centre by Jamal Campbell-Ryce, clearance by Andy Griffin.88:11
Alan Judge crosses the ball. Foul by Lee Hughes on Tommy Spurr, free kick awarded. Gary Woods takes the direct free kick.87:22
Jeff Hughes delivers the ball, Gary Woods makes a comfortable save.87:05
Jeff Hughes sends in a cross, Andy Griffin gets a block in.84:21
Alan Judge crosses the ball, clearance by Rob Jones.83:26
Gary Liddle fouled by Sammy Clingan, the ref awards a free kick. Free kick taken by Bartosz Bialkowski.82:53
Cross/shot by Jeff Hughes.82:07 Substitution
Substitution Iain Hume leaves the field to be replaced by Sammy Clingan.82:00
The ball is swung over by Jeff Hughes, Rob Jones makes a clearance.81:27
Unfair challenge on Alan Judge by David Syers results in a free kick. Direct free kick taken by Alan Judge.81:07
The ball is swung over by Chris Brown.79:35
Outswinging corner taken from the right by-line by Paul Keegan.77:57
Effort from a long way out by Alan Judge goes wide right of the target.77:49
Jeff Hughes produces a cross, clearance made by David Syers.77:29
Chris Brown gives away a free kick for an unfair challenge on Alan Judge. Alan Judge takes the direct free kick.
Tommy Spurr concedes a free kick for a foul on Lee Hughes. The free kick is delivered right-footed by Alan Judge from right channel, clearance made by David Syers.75:46
Jamal Campbell-Ryce takes a shot. Blocked by Paul Keegan.74:42
Andy Griffin sends in a cross.74:02
A cross is delivered by Alan Judge, clearance by Tommy Spurr.72:17
Unfair challenge on James Husband by Yoann Arquin results in a free kick. Gary Woods restarts play with the free kick.70:09
Neal Bishop concedes a free kick for a foul on Paul Keegan. Andy Griffin takes the direct free kick.68:32
The ball is delivered by Jamal Campbell-Ryce, Kyle Bennett gets a block in. Alan Judge takes a outswinging corner from the right by-line to the near post, Rob Jones makes a clearance.65:57
Alan Judge delivers the ball, clearance by David Syers. Yoann Arquin takes a shot. Blocked by James Harper. Alan Judge takes the outswinging corner, Rob Jones manages to make a clearance.65:11
The ball is sent over by Alan Judge, clearance by James Harper.64:41
Free kick awarded for an unfair challenge on Alan Judge by David Syers. Free kick crossed right-footed by Alan Judge from left wing, Andy Griffin makes a clearance.64:02 Substitution
Substitution Romello Nangel joins the action as a substitute, replacing Andre Boucaud.63:19
Iain Hume is caught offside. Free kick taken by Jordan Stewart.62:08
Assist by Iain Hume.62:08 Goal scored
Goal! - Chris Brown - Notts Co 0 - 2 Doncaster Chris Brown scores a goal from deep inside the penalty area to the bottom left corner of the goal. Notts County 0-2 Doncaster.61:26 Substitution
Substitution Alan Judge replaces Francois Zoko.61:00 Substitution
Substitution Andy Griffin replaces Paul Quinn.60:19
Assist by David Syers.60:19 Goal scored
Goal! - Paul Keegan - Notts Co 0 - 1 Doncaster Paul Keegan finds the back of the net with a headed goal from inside the six-yard box. Notts County 0-1 Doncaster.59:11
The ball is delivered by Paul Quinn. The official flags Chris Brown offside. Indirect free kick taken by Bartosz Bialkowski.58:29
Jordan Stewart challenges David Syers unfairly and gives away a free kick. Tommy Spurr restarts play with the free kick.56:41
David Syers fouled by Jordan Stewart, the ref awards a free kick. A cross is delivered by Paul Keegan, Kyle Bennett produces a right-footed shot from inside the area that clears the bar.54:29
Chris Brown is caught offside. Jordan Stewart takes the indirect free kick.51:48
Jamal Campbell-Ryce delivers the ball, clearance made by Paul Quinn. Inswinging corner taken right-footed by Jamal Campbell-Ryce from the left by-line, clearance made by Paul Quinn. Corner taken by Jordan Stewart from the right by-line to the near post, clearance made by James Harper.50:26
Francois Zoko crosses the ball, Tommy Spurr makes a clearance.49:42
Yoann Arquin delivers the ball.47:54
Jamal Campbell-Ryce produces a cross, Jeff Hughes takes a shot. Save by Gary Woods.47:18
Centre by Jordan Stewart, Rob Jones makes a clearance.46:11
Centre by Francois Zoko, clearance by Rob Jones. Corner taken by Jamal Campbell-Ryce played to the near post, Rob Jones makes a clearance.45:58
The ball is sent over by Yoann Arquin, clearance by Tommy Spurr.45:01
The referee gets the second half started.45:01 Substitution
Substitution Lee Hughes on for Dean Leacock.45:01 Substitution
Substitution Billy Paynter goes off and Chris Brown comes on.45:00 +1:13 Half time
Half Time The ref blows to signal half-time.45:00 +0:55
The official flags Jeff Hughes offside. Gary Woods takes the indirect free kick.45:00 +0:33
A cross is delivered by Gary Liddle, clearance made by David Syers.41:21
Tommy Spurr challenges Yoann Arquin unfairly and gives away a free kick. The free kick is swung in left-footed by Jordan Stewart, Tommy Spurr manages to make a clearance. Corner taken by Jamal Campbell-Ryce.38:46
Free kick awarded for a foul by Yoann Arquin on Paul Keegan. Tommy Spurr takes the direct free kick.38:16
The ball is delivered by Jamal Campbell-Ryce, Tommy Spurr manages to make a clearance.37:02
The ball is delivered by Jamal Campbell-Ryce.35:17
Free kick awarded for a foul by Andre Boucaud on Billy Paynter. Paul Keegan shoots direct from the free kick, save by Bartosz Bialkowski.30:58
Jeff Hughes challenges Billy Paynter unfairly and gives away a free kick. Free kick crossed by Paul Keegan.28:22
Paul Keegan challenges Jamal Campbell-Ryce unfairly and gives away a free kick. Free kick crossed by Jordan Stewart, Dean Leacock concedes a free kick for a foul on Rob Jones. Gary Woods takes the free kick.25:45
Yoann Arquin produces a right-footed shot from just outside the box that goes wide left of the target.25:31
Jamal Campbell-Ryce crosses the ball, Paul Keegan manages to make a clearance.24:56
Neal Bishop takes a shot. Paul Keegan gets a block in. Corner taken right-footed by Jamal Campbell-Ryce, Paul Quinn makes a clearance.24:00
Francois Zoko takes a shot. Blocked by Rob Jones. Inswinging corner taken right-footed by Jamal Campbell-Ryce, clearance made by Rob Jones.22:47
Effort from the edge of the area by Iain Hume goes wide of the left-hand post.22:01
Centre by Yoann Arquin, clearance by James Husband.20:22
A cross is delivered by Jamal Campbell-Ryce, clearance made by James Harper. Outswinging corner taken by Jamal Campbell-Ryce.18:39
The free kick is swung in left-footed by Jordan Stewart, clearance made by James Harper. Corner taken by Jamal Campbell-Ryce from the right by-line played to the near post, clearance made by Rob Jones.18:39 Booking
Booking Kyle Bennett receives a caution.18:31
Kyle Bennett challenges Jamal Campbell-Ryce unfairly and gives away a free kick.16:42
Yoann Arquin delivers the ball.15:10
Foul by Iain Hume on Gary Liddle, free kick awarded. Free kick crossed left-footed by Jordan Stewart from right wing, clearance made by Rob Jones.13:49
The ball is swung over by Francois Zoko, save by Gary Woods.12:47
Francois Zoko fouled by James Harper, the ref awards a free kick. Direct free kick taken by Jordan Stewart.6:15
Jamal Campbell-Ryce delivers the ball, clearance by Paul Quinn.5:07
Kyle Bennett has an effort at goal from outside the box which goes wide left of the goal.0:00
The ref blows the whistle to begin the match.
Live data and text provided by our data suppliers