Chris Wood scored his eighth goal of the season to help in-form Millwall climb into sixth spot in the table after victory at Blackburn.
Wood broke the deadlock with a tremendous 25-yard strike before James Henry sealed victory in stoppage time.
Henry found the net in equally impressive style from 30 yards to earn a fifth win in six games for the Lions.
Wood on target
Having managed just one goal in 21 appearances for West Brom, Chris Wood has now scored seven times in his last seven games for Millwall
Blackburn went closest through Josh King, who has joined on loan from Manchester United.
Rovers now have just one win in five league games since Henning Berg took over as manager.
Millwall were full value for the win with New Zealand international Wood, on loan from West Brom, a constant threat.
He put his side ahead with an unstoppable right-footed finish soon after Ruben Rochina forced a save from Lions keeper David Forde, who dived full-stretch to tip the ball behind for a corner following a 20-yard drive.
King, 20, forced a fine save from Forde from 12 yards out before Henry secured the points with an excellent long range finish.
Blackburn boss Henning Berg felt Millwall's first goal was preventable: "It's possible to stop it before Wood gets the ball.
"He doesn't have to get it in that position if we defend a bit better early on but as soon as he shoots it's very difficult to stop.
"It's a fantastic strike but we could have done better before that.
"The second goal, we lose the ball in the centre in midfield and again they got a shooting opportunity that he took well. The biggest difference between the teams was the shooting ability."
Millwall manager Kenny Jackett on the possibility of keeping Chris Wood: "He is doing very well and in a rich vein of form but I'm sure he'd be the first one to say that the partners he's had have been very good as well. Andy Keogh and Darius Henderson have really helped him out a lot.
"Obviously Chris is here until Christmas and it's an obvious one that we'd like it further.
"He's done very well for us and it is an obvious thing to say if we could get him at Millwall of course we would."
Live Text Commentary
Full Time The referee ends the match.90:00 +4:04
Joshua King produces a right-footed shot from inside the area that goes over the bar.90:00 +3:05
Simon Vukcevic takes a shot. Danny Shittu gets a block in. Short corner taken by Miguel Nuno Gomes.90:00 +1:03
Corner taken left-footed by Ruben Rochina from the left by-line, Danny Shittu manages to make a clearance.89:14
The assist for the goal came from Andy Keogh.89:14 Goal scored
Goal! - James Henry - Blackburn 0 - 2 Millwall James Henry finds the net with a goal from a long way out to the top left corner of the goal. Blackburn 0-2 Millwall.88:43
Foul by Ruben Rochina on Scott Malone, free kick awarded. David Forde takes the indirect free kick.87:58
The official flags Andy Keogh offside. Paul Robinson takes the indirect free kick.86:09 Substitution
Substitution Scott Malone on for Chris Taylor.86:09
Centre by Ruben Rochina, Headed effort from deep inside the area by Scott Dann misses to the right of the target.86:09 Booking
Booking The referee cautions James Henry for unsporting behaviour.86:02
James Henry challenges Martin Olsson unfairly and gives away a free kick.85:36
Simon Vukcevic fouled by Andy Keogh, the ref awards a free kick. Adam Henley takes the free kick.84:07
Paul Robinson takes the direct free kick.84:07 Substitution
Substitution Simon Vukcevic comes on in place of Danny Murphy.84:07
The official flags Chris Wood offside.81:06
Ruben Rochina takes a shot. Danny Shittu gets a block in.80:36
Corner taken left-footed by Ruben Rochina.79:31
Grant Hanley takes a shot from long range which goes wide right of the goal.78:46
Free kick awarded for an unfair challenge on Martin Olsson by James Henry. Danny Murphy restarts play with the free kick.
The ball is sent over by Martin Olsson, blocked by Danny Shittu.76:35
Joshua King takes a shot. Danny Shittu gets a block in. Corner taken by Ruben Rochina from the right by-line, save by David Forde.74:05
Ruben Rochina takes a shot.72:02 Substitution
Substitution (Blackburn) makes a substitution, with Miguel Nuno Gomes coming on for Mauro Formica.70:56 Goal scored
Goal! - Chris Wood - Blackburn 0 - 1 Millwall Chris Wood gets on the score sheet with a goal from outside the penalty box to the top left corner of the goal. Blackburn 0-1 Millwall.70:10
Joshua King crosses the ball.69:13
James Henry crosses the ball, Scott Dann manages to make a clearance.68:39
Inswinging corner taken right-footed by James Henry from the right by-line to the near post, clearance by Ruben Rochina.66:59
A cross is delivered by Mauro Formica, Effort from deep inside the area by Joshua King misses to the left of the target.66:59 Booking
Booking Danny Shittu is shown a yellow card for dissent.66:47
Adam Henley fouled by Andy Keogh, the ref awards a free kick.65:47
Adam Smith fouled by Joshua King, the ref awards a free kick. David Forde restarts play with the free kick.65:31
Ruben Rochina takes a shot. Save by David Forde.63:18
Chris Wood takes a shot. Danny Murphy gets a block in.61:01
Ruben Rochina takes the free kick. Corner taken by Mauro Formica, Shot by Danny Murphy from deep inside the penalty area misses to the left of the goal.61:01 Booking
Booking Shane Lowry goes into the book.60:53
Unfair challenge on Mauro Formica by Shane Lowry results in a free kick.60:16
Unfair challenge on Mauro Formica by Andy Keogh results in a free kick. Free kick taken by Mauro Formica.58:36
Chris Taylor has a shot on goal from outside the area which misses right.58:15
Free kick awarded for an unfair challenge on Josh Wright by Danny Murphy. Shane Lowry takes the indirect free kick.57:20
Joshua King gives away a free kick for an unfair challenge on James Henry. David Forde restarts play with the free kick.56:27
Joshua King takes a shot. Save made by David Forde. Inswinging corner taken right-footed by Ruben Rochina from the right by-line.56:02
Ruben Rochina takes a shot. Danny Shittu gets a block in.54:59
Corner from the left by-line taken by Ruben Rochina, clearance by Mark Beevers.54:59 Substitution
Substitution Joshua King is brought on as a substitute for Markus Olsson.54:35
Shot by Ruben Rochina from outside the box goes over the net.53:30
Ruben Rochina produces a cross, save made by David Forde.51:28
Andy Keogh is caught offside. Free kick taken by Paul Robinson.51:03
James Henry takes a shot. Grant Hanley gets a block in.50:05
The assistant referee signals for offside against Andy Keogh. Free kick taken by Paul Robinson.48:27
Free kick awarded for an unfair challenge on Grant Hanley by Chris Wood. Grant Hanley takes the free kick.47:20
Martin Olsson takes a shot. Save made by David Forde. Outswinging corner taken from the right by-line by Mauro Formica, David Forde makes a save.45:22
Jordan Rhodes produces a header from inside the area that goes over the crossbar.45:01
The referee starts the second half.45:00 +1:15 Half time
Half Time It is the end of the first-half.43:35
Inswinging corner taken by Ruben Rochina from the right by-line played to the near post, Andy Keogh makes a clearance. Corner taken by Mauro Formica from the left by-line, save made by David Forde.43:17
The ball is delivered by Martin Olsson, clearance by Danny Shittu.42:05
Andy Keogh gives away a free kick for an unfair challenge on Martin Olsson. Indirect free kick taken by Paul Robinson.39:44
Shot on goal by Markus Olsson from just inside the area goes over the target.39:03
Ruben Rochina takes a shot. Blocked by Mark Beevers.37:52
Inswinging corner taken right-footed by Mauro Formica played to the near post, clearance by Andy Keogh.36:58
Free kick awarded for a foul by Jordan Rhodes on Danny Shittu. David Forde takes the free kick.36:07
Outswinging corner taken by Ruben Rochina from the left by-line played to the near post, Andy Keogh manages to make a clearance.35:49
The ball is crossed by Ruben Rochina, Mark Beevers manages to make a clearance.34:38
The ball is delivered by Markus Olsson, David Forde makes a save.31:12
The referee penalises Chris Wood for handball. Paul Robinson takes the free kick.30:41
Corner taken by James Henry.30:06
Chris Wood takes a shot. Save by Paul Robinson.29:11
Andy Keogh takes a shot.28:33
Nadjim Abdou takes a shot.27:15
Centre by James Henry, blocked by Markus Olsson.24:50
Adam Henley takes a shot. Save by David Forde.23:35
Mauro Formica produces a right-footed shot from inside the area that clears the bar.22:10
Ruben Rochina takes a shot. Save by David Forde. Corner taken by Ruben Rochina from the right by-line, save made by David Forde.21:24
Danny Shittu concedes a free kick for a foul on Ruben Rochina. Danny Murphy takes the direct free kick.19:41
Andy Keogh takes a shot. Blocked by Scott Dann. Andy Keogh is caught offside. Paul Robinson takes the direct free kick.18:37
Mauro Formica takes a shot. Save by David Forde. Outswinging corner taken right-footed by Mauro Formica, save by David Forde.17:45
Ruben Rochina fouled by Danny Shittu, the ref awards a free kick. Free kick taken by Danny Murphy.15:54
Unfair challenge on Markus Olsson by Danny Shittu results in a free kick. The free kick is delivered left-footed by Ruben Rochina from left wing, clearance made by Adam Smith.15:31
Centre by Andy Keogh, Scott Dann manages to make a clearance.10:33
Adam Smith sends in a cross.8:49
Ruben Rochina takes a shot. Save by David Forde.7:18
The offside flag is raised against Andy Keogh. Free kick taken by Paul Robinson.4:34
Adam Smith concedes a free kick for a foul on Martin Olsson. Danny Murphy takes the direct free kick.2:09
Free kick awarded for a foul by Chris Wood on Dickson Etuhu. Danny Murphy takes the direct free kick.0:00
The game gets underway.
Live data and text provided by our data suppliers