Match ends, Millwall 2, Sheffield United 3.
Championship: Millwall 2-3 Sheffield United
David McGoldrick's late double gave Sheffield United a comeback win after a frantic finale at Millwall.
Billy Sharp headed the Blades in front with his sixth goal of the season from close range, moments after Ben Amos had turned Sharp's penalty onto the bar following a handball by Shaun Williams.
Millwall turned the game on its head within the first five minutes of the second half, Cooper heading in the equaliser from Williams' corner, before Ryan Leonard - on loan from the Blades - set Lee Gregory clear to slot past Dean Henderson.
David McGoldrick levelled from the spot after Williams conceded a second penalty for a shove on Mark Duffy, and then tapped in a late winner.
An unchanged United arrived in good form with five wins from seven, but with a poor record at the Den following 11 defeats in their previous 14 visits.
However, even without Sharp's penalty miss, the visitors held a deserved lead at half-time after creating the best chances and enjoying two-thirds of the possession.
Leonard was allowed to start for Millwall after a clause to prevent him playing against his parent club was not included in his loan deal, and inevitably, the midfielder had an impact by setting up the Lions' second as the hosts made a lightning start to the second half.
But Millwall could not hold on under increasing pressure for a precious second win of the season, with Sharp also seeing a headed goal disallowed for offside before McGoldrick snatched the winner from Duffy's assist.
United, who have lost just once in eight matches, remained fourth, but moved within a point of new leaders West Brom, while the Lions, who have lost six of their last seven in the league, drop to second-bottom.
Millwall manager Neil Harris:
"These late goals must be down to concentration in the group and a winning mentality.
"You can talk about bad luck or good goals against us, but these were poor goals and people not doing their jobs - that's what it boils down to.
"If they want to do their jobs properly, and they want to be considered for team selection, they need to show more leadership and more quality in themselves in key moments.
"We've thrown points away again. The table doesn't lie, it never lies. We have to do what made us so good last year. Ultimately individuals have to perform better than they are."
Sheffield United manager Chris Wilder told BBC Radio Sheffield:
"I am just so proud of the players the way they went about it.
"This was never ever going to be an easy place to come and get a result. For five minutes we were disappointed that we let them get back into the game.
"But what I am so pleased about is that we kept playing the way we want to play. We kept grinding them down and overloading and working the ball from side to side.
"I believe we fully deserved a win today."
- 3MeredithSubstituted forBradshawat 89'minutes
- 7WallaceBooked at 34mins
- 28LeonardBooked at 18mins
- 22O'BrienSubstituted forFergusonat 80'minutes
- 20MorisonSubstituted forElliottat 84'minutes
- 12EganBooked at 83mins
- 18FreemanBooked at 55mins
- 3StevensBooked at 12minsSubstituted forJohnsonat 75'minutes
- 21DuffySubstituted forStearmanat 90'minutes
- 17McGoldrickSubstituted forClarkeat 90+3'minutes
- Andy Davies
- Shots on Target
Second Half ends, Millwall 2, Sheffield United 3.
Foul by Marvin Johnson (Sheffield United).
Shaun Williams (Millwall) wins a free kick in the defensive half.
Billy Sharp (Sheffield United) wins a free kick in the defensive half.
Foul by Shaun Williams (Millwall).
Substitution, Sheffield United. Leon Clarke replaces David McGoldrick.
Substitution, Sheffield United. Richard Stearman replaces Mark Duffy.
Substitution, Millwall. Tom Bradshaw replaces James Meredith.
Goal! Millwall 2, Sheffield United 3. David McGoldrick (Sheffield United) left footed shot from very close range to the centre of the goal. Assisted by Mark Duffy.
Corner, Sheffield United. Conceded by James Meredith.
Attempt blocked. David McGoldrick (Sheffield United) right footed shot from outside the box is blocked.
Substitution, Millwall. Tom Elliott replaces Steve Morison.
John Egan (Sheffield United) is shown the yellow card for a bad foul.
Foul by John Egan (Sheffield United).
Lee Gregory (Millwall) wins a free kick on the right wing.
Hand ball by John Fleck (Sheffield United).
Substitution, Millwall. Shane Ferguson replaces Aiden O'Brien.
Offside, Sheffield United. Oliver Norwood tries a through ball, but Billy Sharp is caught offside.
Goal! Millwall 2, Sheffield United 2. David McGoldrick (Sheffield United) converts the penalty with a right footed shot to the bottom left corner.
Penalty Sheffield United. Mark Duffy draws a foul in the penalty area.
Penalty conceded by Shaun Williams (Millwall) after a foul in the penalty area.
Foul by Billy Sharp (Sheffield United).
Ben Amos (Millwall) wins a free kick in the defensive half.
Corner, Sheffield United. Conceded by Mahlon Romeo.
Substitution, Sheffield United. Marvin Johnson replaces Enda Stevens.
Attempt saved. David McGoldrick (Sheffield United) left footed shot from a difficult angle on the right is saved in the bottom right corner. Assisted by Chris Basham.
Corner, Sheffield United. Conceded by Aiden O'Brien.
Attempt blocked. Oliver Norwood (Sheffield United) right footed shot from outside the box is blocked.
Enda Stevens (Sheffield United) wins a free kick in the attacking half.
Foul by Lee Gregory (Millwall).
Enda Stevens (Sheffield United) wins a free kick on the left wing.
Foul by Lee Gregory (Millwall).
Billy Sharp (Sheffield United) wins a free kick on the left wing.
Foul by Byron Webster (Millwall).
Corner, Millwall. Conceded by John Egan.
Attempt blocked. Oliver Norwood (Sheffield United) left footed shot from outside the box is blocked.
Attempt missed. John Fleck (Sheffield United) left footed shot from the left side of the box misses to the right.
Attempt saved. Mark Duffy (Sheffield United) right footed shot from the right side of the box is saved in the centre of the goal. Assisted by Chris Basham.
Chris Basham (Sheffield United).