Match ends, Millwall 0, Blackburn Rovers 2.
Millwall 0-2 Blackburn Rovers: Joe Nuttall & Adam Armstrong score late to seal win
Blackburn Rovers scored twice in just over a minute to grab a late victory at Millwall and end the hosts' four-match winning run.
Joe Nuttall scrambled in his first Championship goal from substitute Adam Armstrong's cross from close range to give Rovers an 86th-minute lead.
And Armstrong then wrapped up all three points for Tony Mowbray's side 18 seconds after the restart when he finished off a swift counter-attack by cutting on to his right foot and firing in off the post past Jordan Archer.
The closest Millwall came to a goal was Ryan Leonard's 25-yard drive, which was pushed away by Rovers keeper David Raya.
Rovers' victory, which saw them net with both of their efforts on target in an otherwise poor game, sees them climb to 14th in the table, six points off a play-off place.
The flow of the contest was not helped by the Lions losing striker Tom Elliott after only seven seconds to a shoulder injury in an aerial challenge with Darragh Lenihan, while referee Robert Jones also limped off after 25 minutes with a calf injury and replaced by fourth official Gavin Ward.
Nevertheless, a Jake Cooper header for the hosts, which bounced yards wide, was the closest either side came to a goal during a dire first half which saw only two attempts at goal - the fewest of any Championship game this season.
Leonard finally registered the game's first effort on target on the hour, while Raya also had to make a routine save from Mahlon Romeo before the late drama as Blackburn secured their fifth win in their past eight visits to The Den.
Millwall boss Neil Harris:
"I'm frustrated, definitely. That was a 0-0 draw all the way through. I can't really remember many chances at either end.
"I never felt like we were going to concede a goal. I think that once again it's the reality of where we're at, it's another learning curve. If you switch off at any moment in the Championship, against any side above you in the league, you'll get punished.
"We switched off at 86 minutes and the ball goes in our net. The second goal is disappointing - it's a killer. If you don't concede straight away, you may get that little bit of momentum and that one chance in stoppage time."
Blackburn manager Tony Mowbray:
"I'm pleased with the points, we'll take those. It's really hard to come away from home in the Championship and win because there are so many huge clubs in the division.
"Any three points are welcome but I'm not pleased overall, because in my opinion that was a terrible game and I'm glad that I didn't have to pay to watch that this evening.
"We forgot to pass the ball because we knew we'd have to head the ball and compete in midfield. It wasn't a great spectacle but we'll take the clean sheet, with three centre-halves out, and the points.
"Normally Adam Armstrong would start for us but it wasn't a bad game to name him on the bench and see if he could make the difference late on."
- 3MeredithSubstituted forWilliamsat 87'minutes
- 19ElliottSubstituted forMorisonat 3'minutes
- 22O'BrienSubstituted forGregoryat 68'minutes
- 29EvansSubstituted forNyambeat 45'minutes
- 23DackSubstituted forArmstrongat 74'minutes
- 32ConwaySubstituted forGrahamat 64'minutes
- Robert Jones
- Shots on Target
Second Half ends, Millwall 0, Blackburn Rovers 2.
Foul by Ryan Nyambe (Blackburn Rovers).
Jed Wallace (Millwall) wins a free kick on the left wing.
Foul by Lewis Travis (Blackburn Rovers).
Steve Morison (Millwall) wins a free kick in the defensive half.
Danny Graham (Blackburn Rovers) wins a free kick on the left wing.
Foul by Mahlon Romeo (Millwall).
Goal! Millwall 0, Blackburn Rovers 2. Adam Armstrong (Blackburn Rovers) right footed shot from the centre of the box to the bottom right corner. Assisted by Elliott Bennett following a fast break.
Substitution, Millwall. Shaun Williams replaces James Meredith.
Goal! Millwall 0, Blackburn Rovers 1. Joe Nuttall (Blackburn Rovers) with an attempt from very close range to the bottom left corner.
Attempt missed. Ryan Tunnicliffe (Millwall) right footed shot from the right side of the box is high and wide to the right. Assisted by Ryan Leonard with a headed pass following a corner.
Corner, Millwall. Conceded by Amari'i Bell.
Foul by Danny Graham (Blackburn Rovers).
Mahlon Romeo (Millwall) wins a free kick on the right wing.
Attempt saved. Mahlon Romeo (Millwall) right footed shot from the right side of the box is saved in the centre of the goal. Assisted by Lee Gregory.
Foul by Danny Graham (Blackburn Rovers).
Shaun Hutchinson (Millwall) wins a free kick in the defensive half.
Substitution, Blackburn Rovers. Adam Armstrong replaces Bradley Dack.
Jack Rodwell (Blackburn Rovers) wins a free kick in the defensive half.
Foul by Shaun Hutchinson (Millwall).
Foul by Joe Nuttall (Blackburn Rovers).
Shane Ferguson (Millwall) wins a free kick on the left wing.
Amari'i Bell (Blackburn Rovers) wins a free kick in the defensive half.
Foul by Steve Morison (Millwall).
Substitution, Millwall. Lee Gregory replaces Aiden O'Brien.
Elliott Bennett (Blackburn Rovers) wins a free kick on the left wing.
Foul by Jed Wallace (Millwall).
Harrison Reed (Blackburn Rovers) wins a free kick on the right wing.
Dangerous play by Aiden O'Brien (Millwall).
Attempt missed. Bradley Dack (Blackburn Rovers) right footed shot from the centre of the box misses to the left. Assisted by Ryan Nyambe.
Attempt missed. Jack Rodwell (Blackburn Rovers) header from the left side of the six yard box is high and wide to the right. Assisted by Harrison Reed with a cross following a corner.
Corner, Blackburn Rovers. Conceded by Mahlon Romeo.
Substitution, Blackburn Rovers. Danny Graham replaces Craig Conway.
Hand ball by James Meredith (Millwall).
Offside, Millwall. Ryan Leonard tries a through ball, but Shane Ferguson is caught offside.
Attempt saved. Ryan Leonard (Millwall) right footed shot from outside the box is saved in the bottom left corner.
Attempt missed. Ryan Leonard (Millwall) right footed shot from the left side of the six yard box is close, but misses to the left. Assisted by Steve Morison with a headed pass.
Craig Conway (Blackburn Rovers) wins a free kick on the right wing.
Foul by James Meredith (Millwall).