Alan Dunne scored his first goal since August 2010 as Millwall earned a victory at promotion-chasing Leicester, who had Wes Morgan sent off early on.
Morgan saw red after hauling down Andy Keogh with Kasper Schmeichel saving Shane Lowry's resulting free-kick.
Schmeichel was in inspired form and also denied Jermaine Easter, Rob Hulse and Adam Smith.
Leicester went close through Chris Wood's deflected header but Dunne's placed finish late on won the game.
Dunne and dusted
Alan Dunne's last league goal came on 6 March 2010, while he last scored in August of that year in the League Cup
The result means Leicester, who are without a win in six games, remain sixth on 59 points level with Brighton below them who have played a game fewer. Millwall move further away from the bottom three and are eight points above the relegation zone.
Things started badly for the Foxes when Morgan was dismissed after he brought down Keogh, who had been through on goal after reacting quickest to a long punt down field.
Schmeichel had to be alert from the resulting free-kick, superbly keeping out Lowry's effort from 25 yards at full stretch.
Leicester went close to opening the scoring but Lowry cleared off the line from Wood, before Jermaine Easter forced another fine save from Schmeichel with a fierce drive at the other end.
Paul Konchesky was then caught in possession and robbed by Rob Hulse, who fired straight at Schmeichel from a tight angle.
Adam Smith's powerful drive from distance was also at the Foxes goalkeeper. Leicester also went close when Wood's header deflected off Liam Trotter but was superbly kept out via the post by keeper David Forde.
The game looked to be heading for a draw but Dunne latched on to Richard Chaplow's cutback and his placed finish found the far corner of the net.
Leicester manager Nigel Pearson: "We've lost the game at the end because we didn't defend well. I can't really complain about the incident where Wes Morgan was sent off.
"At the moment we are having a tough time and I don't think the players deserve that but you've got to defend better than we did at the end. It was tough for us.
"We've got to stay in the play-off places, that's our aim but we're struggling to get wins and as the games run out it gets more difficult. We can't be despondent, and I can't fault the effort and desire of the players to get something out of the game."
Millwall boss Kenny Jackett: "We gave them problems early on and I don't know if we surprised Leicester with how we started.
"But we should have been a couple of goals ahead at half-time.
"It did look like it might cost us with the game petering out to a goal-less draw in the second half, but I was very pleased for Alan Dunne to score.
"To pop up and finish with such composure, to pass that into the net, it was a finish of real quality."
- 01 Schmeichel
- 02 De Laet
- 03 Konchesky
- 05 Morgan Dismissed
- 15 M Keane
- 04 Drinkwater (King - 57' )
- 16 James
- 24 Knockaert
- 18 Schlupp
- 35 Nugent
- 39 Wood (Kane - 83' )
- 13 Logan
- 06 Whitbread
- 10 King
- 11 Dyer
- 19 Wellens
- 09 Vardy
- 37 Kane
- 01 Forde
- 02 Dunne Booked
- 03 Shittu
- 12 Lowry
- 21 Smith (Abdou - 72' )
- 25 Smith
- 06 Trotter Booked
- 32 Chaplow Booked
- 07 Hulse Booked (Marquis - 72' )
- 20 Keogh (Woolford - 90' )
- 31 Easter
- 33 M Taylor
- 28 Malone
- 18 Woolford
- 26 Abdou
- 29 Saville
- 09 Marquis
- 22 N'Guessan
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +5:04
Adam Smith fouled by Harry Kane, the ref awards a free kick. David Forde restarts play with the free kick.90:00 +4:29
The referee blows for offside against Richard Chaplow. Kasper Schmeichel takes the free kick.90:00 +1:12
Anthony Knockaert takes the outswinging corner, Kasper Schmeichel challenges Danny Shittu unfairly and gives away a free kick. David Forde takes the direct free kick.89:28
David Forde restarts play with the free kick.89:28 Substitution
Substitution (Millwall) makes a substitution, with Martyn Woolford coming on for Andy Keogh.89:28
Ritchie De Laet gives away a free kick for an unfair challenge on Adam Smith.87:34
Short corner taken by Richard Chaplow from the left by-line.86:13
Assist on the goal came from Richard Chaplow.86:13 Goal scored
Goal! - Alan Dunne - Leicester 0 - 1 Millwall Alan Dunne gets on the score sheet with a goal from deep inside the penalty box to the bottom left corner of the goal. Leicester 0-1 Millwall.82:43 Substitution
Substitution Harry Kane on for Chris Wood.81:42
Unfair challenge on Richard Chaplow by Ritchie De Laet results in a free kick. David Forde restarts play with the free kick.79:40
Anthony Knockaert takes the inswinging corner, Adam Smith manages to make a clearance.78:18
Richard Chaplow takes a short corner.78:10
Adam Smith delivers the ball, clearance by Paul Konchesky.77:38
Anthony Knockaert takes the outswinging corner, David Forde makes a comfortable save.76:49
Handball by Adam Smith. Free kick crossed left-footed by Anthony Knockaert, save made by David Forde.76:31
The ball is crossed by David Nugent, clearance by Shane Lowry.75:31
Richard Chaplow sends in a cross.73:19
Jeff Schlupp takes the direct free kick.
Booking Booking for Alan Dunne for unsporting behaviour.72:48
Alan Dunne gives away a free kick for an unfair challenge on Jeff Schlupp.71:14
Free kick crossed left-footed by Anthony Knockaert from right wing, save by David Forde.71:14 Substitution
Substitution Nadjim Abdou replaces Jack Smith.71:14 Substitution
Substitution (Millwall) makes a substitution, with John Marquis coming on for Rob Hulse.71:14
Free kick awarded for a foul by Adam Smith on Ritchie De Laet.69:33
Direct strike on goal from the free kick comes in from Anthony Knockaert.69:33 Booking
Booking Liam Trotter is shown a yellow card for unsporting behaviour.69:30
Free kick awarded for a foul by Liam Trotter on Jeff Schlupp.68:43
Free kick awarded for a foul by Liam Trotter on Anthony Knockaert. Paul Konchesky restarts play with the free kick.67:47
Kasper Schmeichel restarts play with the free kick.67:47 Booking
Booking Richard Chaplow is cautioned.67:37
Free kick awarded for an unfair challenge on Ritchie De Laet by Richard Chaplow.66:35
Free kick awarded for an unfair challenge on Matty James by Richard Chaplow. Direct free kick taken by Kasper Schmeichel.62:53
Drilled right-footed shot by Adam Smith. Save by Kasper Schmeichel.62:19
Outswinging corner taken from the right by-line by Richard Chaplow, Michael Keane manages to make a clearance.60:01
Matty James fouled by Liam Trotter, the ref awards a free kick. Free kick crossed left-footed by Anthony Knockaert from right channel.59:04
Kasper Schmeichel takes the free kick.59:04 Booking
Booking Rob Hulse receives a yellow card.59:00
Rob Hulse concedes a free kick for a foul on Kasper Schmeichel.58:44
Richard Chaplow fouled by Anthony Knockaert, the ref awards a free kick. Free kick taken by Jermaine Easter.57:31
Inswinging corner taken left-footed by Anthony Knockaert, Header by Ritchie De Laet from deep inside the penalty area misses to the left of the goal.56:50 Substitution
Substitution (Leicester) makes a substitution, with Andy King coming on for Danny Drinkwater.54:49
The ball is crossed by Jack Smith, Close range header by Rob Hulse misses to the right of the goal.54:13
The ball is sent over by Adam Smith, Kasper Schmeichel makes a save.54:02
The ball is crossed by Andy Keogh, clearance made by Ritchie De Laet.51:45
Danny Drinkwater gives away a free kick for an unfair challenge on Jermaine Easter. Shane Lowry takes the free kick.47:52
Long range shot by Danny Drinkwater goes wide right of the goal.47:35
David Nugent fouled by Alan Dunne, the ref awards a free kick. Free kick taken by Anthony Knockaert.46:20
The referee blows for offside. Free kick taken by Danny Shittu.45:37
The assistant referee flags for offside against Chris Wood. Free kick taken by David Forde.45:01
The referee gets the second half started.45:00 +1:05 Half time
Half Time The match has reached half-time.40:40
Free kick awarded for an unfair challenge on Jack Smith by Matty James. Adam Smith takes the direct free kick.36:48
Corner taken by Richard Chaplow, clearance made by Michael Keane.36:12
Jeff Schlupp is penalised for handball and concedes a free kick. Richard Chaplow crosses the ball in from the free kick. Jack Smith takes a shot. Blocked by Michael Keane.34:17
Matty James takes a shot from a long way out clearing the bar.32:40
Shot from just outside the area by Andy Keogh goes over the bar.31:07
Rob Hulse is flagged offside by the assistant referee. Free kick taken by Kasper Schmeichel.29:50
Richard Chaplow delivers the ball, clearance by Paul Konchesky.29:24
Outswinging corner taken from the right by-line by Richard Chaplow, save by Kasper Schmeichel.28:45
Outswinging corner taken by Richard Chaplow, Alan Dunne takes a shot. Blocked by Chris Wood.28:32
Andy Keogh takes a shot. Kasper Schmeichel makes a save.25:35
Richard Chaplow takes a corner.24:53
Free kick awarded for an unfair challenge on Adam Smith by Ritchie De Laet. David Forde takes the free kick.22:50
Rob Hulse takes a shot. Save made by Kasper Schmeichel.22:29
Liam Trotter challenges Danny Drinkwater unfairly and gives away a free kick. Danny Drinkwater restarts play with the free kick.22:13
The ball is sent over by Andy Keogh, Michael Keane makes a clearance.21:43
Danny Drinkwater concedes a free kick for a foul on Richard Chaplow. Free kick taken by Liam Trotter.17:38
Effort from the edge of the area by David Nugent goes wide of the left-hand upright.16:42
Danny Drinkwater concedes a free kick for a foul on Alan Dunne. Alan Dunne takes the free kick.14:29
Ritchie De Laet takes a shot. Blocked by Danny Shittu.13:08
Outswinging corner taken right-footed by Richard Chaplow from the right by-line, David Nugent makes a clearance.12:54
Jermaine Easter takes a shot. Kasper Schmeichel makes a save.12:08
A cross is delivered by Anthony Knockaert.11:19
Foul by Alan Dunne on David Nugent, free kick awarded. Free kick crossed left-footed by Anthony Knockaert from left wing, Andy Keogh makes a clearance.10:14
Corner taken left-footed by Anthony Knockaert from the right by-line, save by David Forde.10:02
David Nugent takes a shot. Blocked by Shane Lowry.9:47
The ball is crossed by Andy Keogh.9:10
Ritchie De Laet produces a cross, comfortable save by David Forde.7:23
Adam Smith takes a shot. Kasper Schmeichel makes a save.6:36
Free kick awarded for an unfair challenge on Adam Smith by David Nugent. David Forde takes the direct free kick.4:29
Richard Chaplow takes a outswinging corner.2:39
Shane Lowry shoots direct from the free kick, Kasper Schmeichel makes a fantastic save.2:39 Dismissal
Dismissal Wes Morgan sent from the field by the ref for professional foul.2:26
Andy Keogh fouled by Wes Morgan, the ref awards a free kick.1:21
Corner taken right-footed by Richard Chaplow from the right by-line, Kasper Schmeichel makes a save.0:44
Corner taken right-footed by Richard Chaplow,0:20
Free kick awarded for a foul by Paul Konchesky on Andy Keogh. Free kick taken by Alan Dunne.0:00
The game gets underway.
Live data and text provided by our data suppliers