Match ends, Millwall 2, Blackburn Rovers 2.
Millwall climbed off the bottom of the Championship but were denied victory by a late goal from 10-man Blackburn.
Shaun Williams gave the Lions the lead with a penalty after Grant Hanley was sent off for a foul on Steve Morison.
Michael Keane levelled with his first Rovers goal, but then conceded a spot-kick by pulling down Simeon Jackson, who converted to put Millwall back on course for a first win in five games.
Substitute Josh King scrambled home a dramatic equaliser in stoppage time.
Millwall had not won at home since January, but started well and Scott McDonald forced Paul Robinson into an early save.
After David Forde saved from Luke Varney at the other end, the Lions struck a post through Owen Garvan's free-kick.
McDonald went close again eight minutes before the break when his low drive was beaten away by Robinson.
Blackburn started the second half brightly, but 12 minutes in were down to 10 men and 1-0 behind.
Hanley was dismissed after bringing down Morison, with Williams converting the resulting penalty.
Millwall looked to press home their advantage but, with the worst defensive record in the division, they could not keep Blackburn at bay, and on-loan Manchester United man Keane headed home Craig Conway's corner just eight minutes later.
Blackburn continued to push with Keane denied a second by Forde's full-length save, but the defender then pulled down Jackson to concede a second penalty with just three minutes of normal time remaining.
Substitute Jackson fired home to put Millwall on the brink of a much-needed victory, but two minutes into stoppage time King scrambled home a Conway cross to dash the Lions' hopes of maximum points.
Millwall manager Ian Holloway: "We feel like we've lost in there but we've only dropped two points. We've got to win five out of seven now but we should have won this one. I'm fuming because we've dropped two points but we did get one.
"We live to fight another day. How am I going to feel when I drive home tonight? I'll be devastated when I see that on television but when I say devastated, it's because it's easily solvable.
"We are where we are for these reasons and we need people now to step up to the plate."
Blackburn manager Gary Bowyer: "We've conceded 10 penalties away from home this season.
"Our lad says he got a touch on the ball first and then takes him down for the second penalty, but hey if he gives the first he's going to give the second isn't he? If that's a penalty you're going to have 10-15 penalties a game.
"It was outstanding character and belief (to equalise). Their desire, belief and mentality was outstanding but unfortunately it wasn't enough because of the referee's decision."
- 17WilliamsSubstituted forMaloneat 82'minutes
- 44EdwardsSubstituted forMaierhoferat 83'minutes
- 27McDonaldBooked at 38mins
- 34OnyedinmaSubstituted forJacksonat 59'minutes
- 3SpurrBooked at 14mins
- 8DunnSubstituted forTaylorat 59'minutes
- 5HanleyBooked at 56mins
- 11RhodesSubstituted forKingat 76'minutes
- James Linington
- Shots on Target
Second Half ends, Millwall 2, Blackburn Rovers 2.
Attempt blocked. Scott McDonald (Millwall) right footed shot from outside the box is blocked. Assisted by Simeon Jackson.
Attempt missed. Simeon Jackson (Millwall) header from the left side of the six yard box is close, but misses to the left. Assisted by Steve Morison with a cross.
Attempt missed. Steve Morison (Millwall) right footed shot from outside the box is too high. Assisted by Owen Garvan.
Goal! Millwall 2, Blackburn Rovers 2. Joshua King (Blackburn Rovers) right footed shot from the centre of the box to the bottom right corner. Assisted by Matthew Kilgallon with a headed pass.
Attempt saved. Joshua King (Blackburn Rovers) right footed shot from the centre of the box is saved in the bottom left corner. Assisted by Craig Conway.
Foul by Nadjim Abdou (Millwall).
Lee Williamson (Blackburn Rovers) wins a free kick on the left wing.
Attempt saved. Simeon Jackson (Millwall) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Stefan Maierhofer with a through ball.
Goal! Millwall 2, Blackburn Rovers 1. Simeon Jackson (Millwall) converts the penalty with a right footed shot to the bottom left corner.
Penalty Millwall. Simeon Jackson draws a foul in the penalty area.
Penalty conceded by Michael Keane (Blackburn Rovers) after a foul in the penalty area.
Attempt missed. Craig Conway (Blackburn Rovers) right footed shot from more than 35 yards is close, but misses the top right corner from a direct free kick.
Foul by Steve Morison (Millwall).
Lee Williamson (Blackburn Rovers) wins a free kick in the attacking half.
Attempt missed. Owen Garvan (Millwall) left footed shot from outside the box is close, but misses to the right.
Substitution, Millwall. Stefan Maierhofer replaces Carlos Edwards.
Substitution, Millwall. Scott Malone replaces Shaun Williams.
Attempt blocked. Joshua King (Blackburn Rovers) right footed shot from the right side of the box is blocked.