Lewis Grabban’s goal in stoppage time secured a win for Nottingham Forest at Millwall in the Championship.
Millwall started well but were unable to capitalise on their early pressure and lost in-form goal scorer Tom Bradshaw to injury in the first half.
Forest grew into the game and were being kept at bay by Millwall goalkeeper Bartosz Bialkowski as both teams pushed for a winner.
But it was Forest who claimed all three points when Grabban tapped home into an empty net after Bialkowski saved well from substitute Philip Zinckernagel.
Victory moves Steve Cooper’s side up to ninth, five points from the play-offs, with Millwall two places and four points below.
Forest went into the game on a high after their shock win against Arsenal in the FA Cup, where Grabban also scored the winner.
Millwall’s Bradshaw was also looking to continue his hot streak of scoring in five straight league games but had his afternoon cut short inside half an hour after appearing to twist his knee.
The Lions started brightly with Forest struggling to deal with their high press, but the first big chance of the game fell to Forest and Ryan Yates. Grabban found the midfielder inside the box but Bialkowski made a fine save to keep the score goalless.
Millwall replaced Sheyi Ojo with Ben Thompson at half-time in what looked like another injury-enforced change and lost a lot of their attacking fluidity from the first half.
The game threatened to peter out but burst into life in the final 10 minutes, with both goalkeepers making at string of fine saves to deny Yates, Grabban and Benik Afobe.
And in the 91st minute Brennan Johnson picked up the ball and drove at Millwall’s defence, playing in Zinckernagel in the box.
Bialkowski came out to meet him and did well to save the chipped attempt, but could only push it into the path of Grabban to turn the ball into the empty net.
Millwall manager Gary Rowett told BBC Radio London:
“It was a frustrating, undeserved end to the game. Until the final whistle blows the game’s there to be won by both teams. It’s a real bitter blow that we lose the game.
“I thought first half we were excellent and were the better team. I thought we were the ones making the running in the first half.
“To lose Bradders [Bradshaw] with what looked like quite a serious knee injury in the first half was a real blow.
“To then lose Sheyi [Ojo] at half-time took the wind out of our sails and made it so difficult to maintain our attacking threat.”
Nottingham Forest manager Steve Cooper:
“We knew coming into it that this is one of the toughest places to come and play, and to get a result.
“I think we had over 20 shots in the second half and I’m glad one went in in the end.
“We didn’t start the game so well. It was becoming that game that we knew it might be, but we didn’t help ourselves if truth be told.
“Lewis is finding the right places at the moment and we looked fit and strong in those last 20 minutes when we were never going to settle for a draw.”
2McNamaraBooked at 57mins
14EyeSubstituted forThompsonat 45′minutes
9BradshawSubstituted forBennettat 28′minutes
26McKennaBooked at 85mins
2SpenceBooked at 45mins
9DavisSubstituted forzinc nailat 73′minutes
Match ends, Millwall 0, Nottingham Forest 1.
Second Half ends, Millwall 0, Nottingham Forest 1.
Goal! Millwall 0, Nottingham Forest 1. Lewis Grabban (Nottingham Forest) right footed shot from very close range to the centre of the goal.
Attempt saved. Philip Zinckernagel (Nottingham Forest) right footed shot from the right side of the box is saved in the centre of the goal. Assisted by Brennan Johnson.
Attempt saved. Scott Malone (Millwall) left footed shot from long range on the left is saved in the top centre of the goal. Assisted by Shaun Hutchinson.
Corner, Millwall. Conceded by Brice Samba.
Attempt saved. Benik Afobe (Millwall) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Mason Bennett with a cross.
Attempt missed. Ryan Yates (Nottingham Forest) right footed shot from very close range is just a bit too high. Assisted by Steve Cook following a corner.
Attempt missed. Steve Cook (Nottingham Forest) header from the centre of the box misses to the left. Assisted by Jack Colback with a cross following a corner.
Corner, Nottingham Forest. Conceded by Jake Cooper.
Corner, Nottingham Forest. Conceded by Shaun Hutchinson.
Attempt missed. Benik Afobe (Millwall) left footed shot from the left side of the box is close, but misses the top left corner. Assisted by Shaun Hutchinson following a set piece situation.
Scott McKenna (Nottingham Forest) is shown the yellow card for a bad foul.
Dan McNamara (Millwall) wins a free kick on the right wing.
Foul by Scott McKenna (Nottingham Forest).
Ryan Yates (Nottingham Forest) wins a free kick in the defensive half.
Foul by Jake Cooper (Millwall).
Corner, Millwall. Conceded by James Garner.
Attempt saved. Benik Afobe (Millwall) right footed shot from the left side of the box is saved in the centre of the goal. Assisted by Billy Mitchell.
Attempt missed. Philip Zinckernagel (Nottingham Forest) left footed shot from outside the box is high and wide to the left.