Millwall kept up their push for a play-off place with a hard-fought victory away at promotion rivals MK Dons.
Neil Harris was denied by Willy Gueret before the Lions went ahead, Danny Schofield ending a fine, jinking solo run with a superb curling finish.
Harris dragged wide before Aaron Wilbraham's 25-yard shot took a wicked deflection and looped into the net.
But Harris restored the lead, bundling in from a yard, before he drilled in a 16th of the season to wrap it all up.
MK Dons assistant manager Karl Robinson tells BBC Three Counties Radio: "It was deeply disappointing. It is a game that we thought we could get the three points.
"You can't compensate for ridiculous defending yet again.
"We had a go and we had chances, but there is no point creating chances if you are going to give goals away."
90:00+5:03 The referee blows his whistle to end the game.
90:00+4:34 Dean Morgan is ruled offside. Darren Ward takes the indirect free kick.
90:00+4:06 Willy Gueret takes the free kick.
90:00+4:06 Booking Steve Morison goes into the book.
90:00+3:58 Dean Lewington fouled by Steve Morison, the ref awards a free kick.
90:00+3:08 Substitution Ali Fuseini on for Danny Schofield.
90:00+2:36 Foul by James Tunnicliffe on Jonathan Obika, free kick awarded. Free kick taken by Paul Robinson.
90:00+1:43 Substitution Jonathan Obika replaces Neil Harris.
90:00+1:19 The ball is sent over by Scott Barron.
90:00+0:36 Aaron Wilbraham sends in a cross, save by David Forde.
90:00 Effort on goal by Andros Townsend from deep inside the penalty area misses to the right of the goal.
88:41 Free kick awarded for an unfair challenge on Aaron Wilbraham by Paul Robinson. Free kick taken by Peter Leven.
87:19 Shot from inside the area by Jermaine Easter clears the bar.
86:34 Foul by Liam Trotter on Aaron Wilbraham, free kick awarded. Direct free kick taken by Willy Gueret.
85:51 Shot by Jermaine Easter from deep inside the penalty area misses wide to the left of the target.
84:57 GOAL - Neil Harris:MK Dons 1 - 3 Millwall Neil Harris scores a goal from the edge of the area to the bottom left corner of the goal. Milton Keynes Dons 1-3 Millwall.
84:25 Corner taken by Scott Barron played to the near post.
83:34 David McCracken challenges Steve Morison unfairly and gives away a free kick. The free kick is delivered left-footed by Scott Barron from right channel, David McCracken manages to make a clearance.
83:09 Scott Barron takes a shot. Blocked by David McCracken.
80:32 Scott Barron delivers the ball in from the corner, clearance by Jude Stirling.
80:23 Centre by Tony Craig, Dean Lewington manages to make a clearance.
79:54 Mark Carrington takes a shot. Save by David Forde.
79:39 Aaron Wilbraham sends in a cross, clearance made by Tony Craig.
79:12 Unfair challenge on David McCracken by Neil Harris results in a free kick. Direct free kick taken by Willy Gueret.
77:12 Substitution Jude Stirling comes on in place of Dan Woodards.
76:49 A cross is delivered by Nadjim Abdou, Steve Morison has a headed effort at goal from deep inside the area missing to the right of the target.
76:18 Danny Schofield takes a shot. Dan Woodards gets a block in.
76:01 Outswinging corner taken by Scott Barron from the left by-line played to the near post, Mark Carrington makes a clearance.
75:46 Scott Barron delivers the ball, blocked by Dan Woodards.
75:04 Unfair challenge on Steve Morison by Dan Woodards results in a free kick. Scott Barron crosses the ball in from the free kick, David McCracken makes a clearance.
72:56 Willy Gueret takes the direct free kick.
72:56 Substitution Dean Morgan is brought on as a substitute for Luke Chadwick.
72:56 Substitution Scott Barron on for Chris Hackett.
72:56 The offside flag is raised against Neil Harris.
70:19 Free kick awarded for a foul by Liam Trotter on Andros Townsend. Mark Carrington restarts play with the free kick.
69:39 The ball is crossed by Andros Townsend, comfortable save by David Forde.
68:55 Centre by Neil Harris.
67:40 Free kick awarded for a foul by Steve Morison on David McCracken. Willy Gueret takes the free kick.
66:09 Effort on goal by Steve Morison from just inside the penalty box goes harmlessly over the target.
65:39 Danny Schofield takes a shot. Save made by Willy Gueret.
64:00 Foul by Jermaine Easter on David Forde, free kick awarded. Direct free kick taken by David Forde.
61:11 Outswinging corner taken by Peter Leven from the left by-line.
61:05 The ball is crossed by Andros Townsend, clearance made by Paul Robinson.
60:13 GOAL - Neil Harris:MK Dons 1 - 2 Millwall Neil Harris scores a goal from close in to the bottom right corner of the goal. Milton Keynes Dons 1-2 Millwall.
59:12 The referee penalises Aaron Wilbraham for handball. The ball is swung over by Chris Hackett,
58:22 Steve Morison concedes a free kick for a foul on James Tunnicliffe. Free kick taken by Willy Gueret.
57:24 Foul by Liam Trotter on Aaron Wilbraham, free kick awarded. The free kick is delivered left-footed by Dean Lewington from left channel, Steve Morison makes a clearance.
56:09 The ball is crossed by Chris Hackett, clearance made by James Tunnicliffe.
55:55 The ball is sent over by Steve Morison, blocked by David McCracken.
55:23 The assistant referee flags for offside against Neil Harris. Willy Gueret takes the direct free kick.
55:04 Paul Robinson fouled by Aaron Wilbraham, the ref awards a free kick. David Forde restarts play with the free kick.
54:28 The offside flag is raised against Steve Morison. Willy Gueret takes the indirect free kick.
53:58 The ball is sent over by Danny Schofield, Steve Morison takes a shot. Save by Willy Gueret.
52:52 GOAL - Aaron Wilbraham:MK Dons 1 - 1 Millwall Aaron Wilbraham scores a goal from the edge of the penalty area to the top left corner of the goal. Milton Keynes Dons 1-1 Millwall.
51:49 Short corner worked by Chris Hackett, Liam Trotter takes a shot. Comfortable save by Willy Gueret.
Correction - 51:23 Booking Paul Robinson is given a yellow card.
51:23 Booking David McCracken shown a yellow card.
50:37 Jermaine Easter takes a shot. Blocked by Paul Robinson.
49:56 Centre by Dean Lewington, Paul Robinson makes a clearance.
49:24 Peter Leven takes the outswinging corner, clearance made by Steve Morison.
49:18 A cross is delivered by Dean Lewington, Paul Robinson makes a clearance.
48:51 Chris Hackett takes a shot. Dean Lewington gets a block in.
48:21 Danny Schofield takes a shot. Blocked by Dan Woodards.
47:33 Steve Morison takes a shot. Willy Gueret makes a comfortable save.
47:02 James Tunnicliffe concedes a free kick for a foul on Neil Harris. The free kick is swung in left-footed by Tony Craig.
46:18 The ball is delivered by Andros Townsend.
45:34 Centre by Steve Morison.
45:01 The second half begins.
Half Time
45:00+1:00 The match has reached half-time.
42:17 Chris Hackett takes a outswinging corner from the right by-line played to the near post, Headed effort from inside the area by Alan Dunne misses to the left of the goal.
41:39 James Tunnicliffe gives away a free kick for an unfair challenge on Neil Harris. Chris Hackett crosses the ball from the free kick right-footed from left wing, Mark Carrington makes a clearance.
40:42 Tony Craig delivers the ball, save made by Willy Gueret.
38:36 Alan Dunne takes a shot. Save by Willy Gueret.
37:10 Effort from deep inside the area by Danny Schofield misses to the left of the target.
35:38 Peter Leven fouled by Liam Trotter, the ref awards a free kick. Willy Gueret takes the free kick.
35:01 The ball is crossed by Andros Townsend.
33:58 Centre by Jermaine Easter, Effort from inside the area by Andros Townsend misses to the right of the goal.
33:39 Neil Harris gives away a free kick for an unfair challenge on David McCracken. David McCracken takes the direct free kick.
32:49 Darren Ward challenges Aaron Wilbraham unfairly and gives away a free kick. Willy Gueret restarts play with the free kick.
30:38 Foul by Tony Craig on Luke Chadwick, free kick awarded. Peter Leven takes the free kick.
29:49 Shot by Neil Harris from deep inside the penalty area misses to the left of the target.
27:46 Headed effort from inside the area by Steve Morison misses to the left of the goal.
26:01 Corner taken by Peter Leven from the left by-line.
25:29 Luke Chadwick takes a shot. David Forde makes a brilliant save.
24:00 Inswinging corner taken left-footed by Andros Townsend from the right by-line, save by David Forde.
23:30 Luke Chadwick takes a shot. Paul Robinson gets a block in.
23:01 Corner taken by Andros Townsend played to the near post.
22:31 Andros Townsend takes a shot. Nadjim Abdou gets a block in.
20:31 Dan Woodards fouled by Nadjim Abdou, the ref awards a free kick. Free kick crossed left-footed by Peter Leven, Darren Ward manages to make a clearance.
19:29 Aaron Wilbraham has an effort at goal from outside the penalty box which goes wide right of the target.
18:02 Nadjim Abdou provided the assist for the goal.
18:02 GOAL - Danny Schofield:MK Dons 0 - 1 Millwall Danny Schofield finds the net with a goal from just outside the box to the bottom right corner of the goal. Milton Keynes Dons 0-1 Millwall.
14:38 The official flags Jermaine Easter offside. David Forde restarts play with the free kick.
13:31 Unfair challenge on Aaron Wilbraham by Alan Dunne results in a free kick. Peter Leven delivers the ball, Header by James Tunnicliffe from deep inside the penalty area misses to the left of the target.
13:16 The ball is crossed by Neil Harris, save by Willy Gueret.
11:57 The ball is crossed by Mark Carrington, David Forde makes a fantastic save.
11:48 Centre by Luke Chadwick.
9:03 Free kick awarded for an unfair challenge on Liam Trotter by Peter Leven. David Forde restarts play with the free kick.
8:35 Long distance shot from Chris Hackett misses to the left of the target.
8:06 Steve Morison fouled by Peter Leven, the ref awards a free kick. Direct free kick taken by Alan Dunne.
6:28 Chris Hackett takes a inswinging corner.
6:00 Neil Harris takes a shot. Save by Willy Gueret.
3:56 Free kick awarded for an unfair challenge on Andros Townsend by Tony Craig. Peter Leven crosses the ball from the free kick left-footed from right wing, clearance by Darren Ward.
3:02 Luke Chadwick challenges Alan Dunne unfairly and gives away a free kick. Free kick taken by David Forde.
2:34 Centre by Tony Craig, David McCracken manages to make a clearance.
1:18 Paul Robinson concedes a free kick for a foul on Aaron Wilbraham. David McCracken takes the direct free kick.
0:43 Mark Carrington takes a shot. Save made by David Forde.
0:00 The referee gets the match started.
Live text and data provided by The Press Association.
Bookmark with:
What are these?