League One leaders Doncaster Rovers suffered a shock defeat at MK Dons.
The Dons made a bright start and Dean Bowditch hit the post with a free-kick when Doncaster goalkeeper Gary Woods pushed his effort onto the upright.
Woods later parried Ryan Lowe's low drive and substitute Izale McLeod finished the rebound from close range.
Doncaster created little while Daniel Powell's first-time shot from 20 yards made it 2-0, before Stephen Gleeson added a late third with a low effort.
MK Dons, who had only taken five points from their last eight league games, have now moved up to 11th, 10 points off a play-off place.
McLeod claimed his first goal since rejoining the club following his release from Portsmouth at the beginning of January.
Winger Powell, 21, scored on the day he signed a two-year contract extension with MK Dons, a deal that keeps him with the club until the summer of 2015, before substitute Gleeson netted with his first touch after McLeod's header.
Rovers, who lost for the first time in six matches, remain top with a one-point advantage but have now played one game more than second-placed Sheffield United.
VIEWS FROM THE DRESSING ROOM
MK Dons manager Karl Robinson told BBC Three Counties Radio:
"It's a frustrating night, because that's us at our best and we've not seen it often enough, and the reason for that is suspensions and injuries.
"There's an awful lot of players still out too, but that was a wonderful performance.
"The place was rocking, and I'd like to say a big thank you to the fans. That was for them, because we've had an awful lot of criticism and stick, but it was important we stuck to our guns and to the team we believe in.
"It just shows the quality we've got when we have players like Stephen Gleeson and Luke Chadwick back fit."
Doncaster Rovers manager Brian Flynn told BBC Radio Sheffield:
"Simply we lost to the better team on the night, they were better than us.
"The way they controlled the ball, their movement was always a problem for us and we just didn't deal with it all night.
"It was a really harsh lesson for us.
"We didn't retain possession from the first minute to the last, so that was a dangerous sign."
Live Text Commentary
Full Time The match has reached full-time.90:00 +0:37
The ball is delivered by Kyle Bennett, clearance made by Antony Kay.90:00 +0:19
James Coppinger takes a short corner.88:19
Darren Potter concedes a free kick for a foul on James Harper. James Harper takes the free kick.87:08
The offside flag is raised against Stephen Gleeson. Direct free kick taken by Gary Woods.86:18
Dean Lewington takes the direct free kick.86:18 Booking
Booking Booking for David Cotterill for unsporting behaviour.86:05
Unfair challenge on Mathias Doumbe by David Cotterill results in a free kick.84:12
The ball is sent over by Kyle Bennett.83:56
Mathias Doumbe challenges John Lundstram unfairly and gives away a free kick. David Cotterill restarts play with the free kick.82:14
Assist on the goal came from Izale McLeod.82:14 Goal scored
Goal! - Stephen Gleeson - MK Dons 3 - 0 Doncaster Goal scored by Stephen Gleeson from just outside the area to the bottom right corner of the goal. Milton Keynes Dons 3-0 Doncaster.82:09
Daniel Powell produces a cross,80:11
Free kick taken by Darren Potter.80:11 Substitution
Substitution Stephen Gleeson joins the action as a substitute, replacing Ryan Lowe.80:11
Foul by John Lundstram on Izale McLeod, free kick awarded.78:38
Centre by Shaun Williams, Close range header by Izale McLeod goes over the bar.77:38
The ball is delivered by Kyle Bennett, save by Ian McLoughlin.76:59
Izale McLeod produces a right-footed shot from inside the area that clears the crossbar.76:19
Unfair challenge on Kyle Bennett by Dean Lewington results in a free kick. James Harper takes the free kick.
Foul by Billy Paynter on Antony Kay, free kick awarded. Antony Kay restarts play with the free kick.73:02 Substitution
Substitution Mathias Doumbe on for Dean Bowditch.73:02
Izale McLeod takes a shot from long range which goes wide of the right-hand upright.68:58
David Cotterill challenges Dean Lewington unfairly and gives away a free kick. Free kick taken by Shaun Williams.65:59
Tommy Spurr fouled by Izale McLeod, the ref awards a free kick. Gary Woods restarts play with the free kick.64:06
Foul by Izale McLeod on Tommy Spurr, free kick awarded. Tommy Spurr takes the free kick.63:41
Ryan Lowe takes a long range shot harmlessly clearing the crossbar.62:46
Ryan Lowe concedes a free kick for a foul on Jamie McCombe. Free kick crossed right-footed by David Cotterill from own half, save by Ian McLoughlin.62:00 Substitution
Substitution Kyle Bennett is brought on as a substitute for James Husband.61:42
James Coppinger takes a shot. Ian McLoughlin makes a save.60:08
Effort from range distance by Dean Bowditch goes wide of the right-hand upright.57:27
Inswinging corner taken right-footed by David Cotterill played to the near post, clearance made by Darren Potter.57:03 Substitution
Substitution (Doncaster) makes a substitution, with Billy Paynter coming on for Iain Hume.55:38 Goal scored
Goal! - Daniel Powell - MK Dons 2 - 0 Doncaster Daniel Powell scores a goal from just outside the penalty area to the top right corner of the goal. Milton Keynes Dons 2-0 Doncaster.54:28
Free kick awarded for an unfair challenge on Ryan Lowe by John Lundstram. Antony Kay takes the direct free kick.52:44
Handball decision goes against James Husband. Free kick taken by Antony Kay.51:05
A cross is delivered by Dean Bowditch, Ryan Lowe produces a right-footed shot from just outside the box that misses to the right of the goal.49:49
The assistant referee signals for offside against James Coppinger. Shaun Williams takes the free kick.49:08
James Husband has an effort at goal from outside the box which goes wide right of the target.47:33
Darren Potter challenges James Husband unfairly and gives away a free kick. David Cotterill delivers the ball from the free kick right-footed from left channel, Darren Potter makes a clearance.46:33
The referee penalises Izale McLeod for handball. Free kick taken by Tommy Spurr.45:51
Effort from the edge of the area by Dean Bowditch goes wide of the right-hand post.45:01
The second half has started.45:01 Substitution
Substitution Andy Griffin on for Rob Jones.45:00 +1:09 Half time
Half Time It is the end of the first-half.45:00 +0:02
Izale McLeod fouled by Jamie McCombe, the ref awards a free kick. Dean Bowditch takes the free kick.44:33 Booking
Booking Jamie McCombe goes into the book for unsporting behaviour.43:47
Chris Lines challenges John Lundstram unfairly and gives away a free kick. Gary Woods takes the free kick.42:19
Adam Chicksen has an effort at goal from just outside the box which goes wide of the right-hand upright.41:29
Free kick awarded for an unfair challenge on Adam Chicksen by James Husband. Antony Kay takes the free kick.39:58
Ryan Lowe provided the assist for the goal.39:58 Goal scored
Goal! - Izale McLeod - MK Dons 1 - 0 Doncaster A goal is scored by Izale McLeod from inside the six-yard box to the bottom right corner of the goal. Milton Keynes Dons 1-0 Doncaster.39:19
Ryan Lowe takes a shot. Save by Gary Woods.35:04 Substitution
Substitution Izale McLeod comes on in place of Luke Chadwick.34:43
A cross is delivered by Shaun Williams, Headed effort from the edge of the area by Ryan Lowe hits the post.34:14
Corner taken by Shaun Williams from the right by-line to the near post, clearance made by Rob Jones.34:02
Ryan Lowe takes a shot. Gary Woods gets a block in.31:44
Darren Potter takes a short corner.30:42
Free kick awarded for a foul by James Harper on Dean Lewington. Shot on goal comes in from Dean Bowditch from the free kick.29:37
The ball is delivered by Dean Lewington, clearance made by Jamie McCombe.27:28
Unfair challenge on James Coppinger by Antony Kay results in a free kick. The free kick is delivered right-footed by David Cotterill from left channel.26:45
Dean Bowditch has an effort at goal from outside the penalty area which goes wide right of the goal.24:37
David Cotterill sends in a cross.24:15
The ball is delivered by Chris Lines, clearance made by Jamie McCombe.23:06
Rob Jones gives away a free kick for an unfair challenge on Luke Chadwick. Free kick crossed left-footed by Shaun Williams from right wing, save made by Gary Woods.21:11
Foul by Dean Lewington on James Coppinger, free kick awarded. Rob Jones restarts play with the free kick.20:50
Dean Bowditch produces a cross.19:53
Centre by Luke Chadwick, clearance by John Lundstram.18:07
Dean Lewington crosses the ball, Chris Lines takes a shot. Gary Woods makes a save.15:41
The assistant referee flags for offside against Iain Hume. Shaun Williams takes the direct free kick.14:19
Iain Hume gives away a free kick for an unfair challenge on Antony Kay. Free kick taken by Ian McLoughlin.11:52
Foul by Iain Hume on Dean Lewington, free kick awarded. Dean Lewington takes the direct free kick.9:08
Luke Chadwick crosses the ball, clearance made by Rob Jones.6:13
The referee blows for offside. Ian McLoughlin restarts play with the free kick.2:41
Free kick awarded for a foul by Jamie McCombe on Ryan Lowe. Chris Lines has an effort direct from the free kick.0:00
The referee gets the game started.
Live data and text provided by our data suppliers