Match ends, Nottingham Forest 0, Millwall 1.
Ricardo Fuller's late goal gave Millwall their first win in nine games as Nottingham Forest's poor form continued.
Fuller pounced on a weak header from Stephen McLaughlin to prod home seven minutes from time at the City Ground.
Henri Lansbury had a shot deflected over for the home team but rarely threatened in an uneventful first half.
Robert Tesche and Britt Assombalonga both hit the bar for Stuart Pearce's men who have won just once in 11 games.
Forest have not scored in the opening 30 minutes of a game since September, and rarely looked like ending that run against the Lions.
Millwall defender Shaun Cummings's loose free-kick was the source of the home team's clearest opening, as winger Michail Antonio intercepted and raced clear but keeper David Forde made a brave save.
Forest counterpart Dorus de Vries brilliantly pushed away a Mark Beevers header as Ian Holloway's side threatened.
Substitute Lee Gregory looked as though he might snatch a goal for Millwall, as he battled through three Forest players, before Lansbury's crucial tackle.
But it was another replacement who had the decisive impact, as 35-year-old Fuller intercepted McLaughlin's weak header back to De Vries to beat the keeper to the ball and prod into an empty net.
Forest have not won at the City Ground since early November and remain 12th, 13 points from the play-off places, while the Lions are now two points behind Brighton in 22nd.
Forest manager Stuart Pearce:
"It was a disappointing afternoon. Millwall were a team who were waiting to be beaten. I was disappointed that we did not win.
"I thought our front two could win us the game, but they did not do enough to do it.
"We created chances but we did not have the gumption and the oomph to take the game by the scruff of the neck and grind the opposition into the ground."
Millwall boss Ian Holloway:
"I wish I could play here every week, I think that is my fourth win on the bounce at Forest as a manager.
"I don't know about the other results, but we have 18 games left and it is about us as a team now.
"The boys have to be together and I am proud of their efforts. Let's get back on the bus and look forward to the next game."
- 29de Vries
- 27BurkeSubstituted forFryattat 60'minutes
- 18AntonioBooked at 32mins
- 32TescheBooked at 53minsSubstituted forPatersonat 70'minutes
- 6WilliamsBooked at 81mins
- 18GueyeSubstituted forFullerat 72'minutes
- 7MartinSubstituted forUpsonat 15'minutesBooked at 34mins
- 42MaierhoferSubstituted forGregoryat 61'minutes
- Mark Heywood
- Shots on Target
Second Half ends, Nottingham Forest 0, Millwall 1.
Alan Dunne (Millwall) wins a free kick in the defensive half.
Foul by Michail Antonio (Nottingham Forest).
Foul by Ricardo Fuller (Millwall).
Stephen McLaughlin (Nottingham Forest) wins a free kick in the defensive half.
Attempt missed. Lee Gregory (Millwall) right footed shot from outside the box misses to the right. Assisted by Alan Dunne.
Corner, Millwall. Conceded by Henri Lansbury.
Attempt blocked. Shaun Williams (Millwall) left footed shot from outside the box is blocked.
Hand ball by Ben Osborn (Nottingham Forest).
Lee Gregory (Millwall) wins a free kick on the left wing.
Foul by Todd Kane (Nottingham Forest).
Offside, Nottingham Forest. Jack Hobbs tries a through ball, but Britt Assombalonga is caught offside.
Attempt missed. Jack Hobbs (Nottingham Forest) header from the centre of the box misses to the left. Assisted by Ben Osborn with a cross following a set piece situation.
Foul by Diego Fabbrini (Millwall).
Jamie Paterson (Nottingham Forest) wins a free kick in the attacking half.
Goal! Nottingham Forest 0, Millwall 1. Ricardo Fuller (Millwall) right footed shot from the centre of the box to the centre of the goal.
Shaun Williams (Millwall) is shown the yellow card for a bad foul.
Foul by Shaun Williams (Millwall).
Michail Antonio (Nottingham Forest) wins a free kick in the attacking half.