Blackburn recorded a second successive home win with a battling victory in testing conditions against Millwall.

Jordan Rhodes gave the hosts the lead, evading Mark Beevers before finding the bottom corner from the edge of the box.

Martyn Waghorn superbly levelled after good work by Liam Trotter and Steve Morison, but parity was short lived.

Ben Marshall headed Rovers in front and a David Dunn header gave his team the cushion before Morison bundled in from close range to ensure a nervy finish.

But the home team held on to inflict a third successive away defeat on the Londoners, who are now just four points from the relegation zone.

Blackburn, who look comfortable in 11th position in the Championship, scored more than one goal at Ewood Park for the first time since the end of August.

Rhodes' 12th goal of the season set the hosts rolling, although Millwall dragged themselves back into contention with a brilliant team goal which ended with Waghorn sliding in at the far post.

Within three minutes of the restart, however, Rovers were back in front as the unmarked Marshall headed home from 12 yards for his first goal for the club.

Dunn's close-range header then went in off the far post for Blackburn's third before Morison struck for what turned out to be a consolation.

Blackburn manager Gary Bowyer:

"We scored three good goals. We didn't play particularly great by our standards but we've played a lot better and lost games.

"We're happy with the character and resilience we've shown against a tough Millwall team.

"I didn't think we passed the ball well enough today by our standards. Sometimes the conditions were not great but you have to give credit to the opposition."

Millwall boss Steve Lomas:

"We were the masters of our own downfall. The three goals we conceded were, I wouldn't even say schoolboy - probably Under12s.

"And that's the reason we're not looking up because going forward we're OK, a threat, scoring goals, but all season we've given away cheap, cheap goals.

"And again it's raised its ugly head.

"I can't keep saying it's unlucky. We're going to have to do something about it."

Lineup, Bookings (3) & Substitutions (5)

Blackburn Rovers

  • 13 Eastwood
  • 27 Henley
  • 03 Spurr
  • 06 Lowe
  • 16 Dann
  • 05 Hanley
  • 12 Marshall
  • 45 Cairney
  • 11 Rhodes (Gestede - 88' )
  • 19 Taylor Booked
  • 07 King (Dunn - 75' )

Substitutes

  • 02 Kane
  • 04 Kilgallon
  • 08 Dunn
  • 21 Marrow
  • 23 Rochina
  • 34 Kean
  • 39 Gestede

Millwall

  • 01 Forde
  • 02 Dunne (Hoyte - 85' )
  • 28 Malone
  • 26 Abdou Booked (Keogh - 77' )
  • 05 Robinson
  • 16 Beevers
  • 07 Feeney Booked (Easter - 71' )
  • 06 Trotter
  • 29 Waghorn
  • 09 Morison
  • 11 Woolford

Substitutes

  • 03 Shittu
  • 08 Easter
  • 17 Moussi
  • 20 Keogh
  • 25 Hoyte
  • 27 McDonald
  • 43 Bywater
Ref: David Webb
Att: 12,642

Match Stats

Shots

13 15

On target

8 5

Corners

6 9

Fouls

11 8

Live Text Commentary

Full time

Full Time Match ends, Blackburn Rovers 3, Millwall 2.

90:00 +5:16 Full time

Full Time Second Half ends, Blackburn Rovers 3, Millwall 2.

90:00 +3:54

Attempt missed. Steve Morison (Millwall) header from the left side of the box misses to the left. Assisted by Paul Robinson.

90:00 +2:20

Attempt saved. Steve Morison (Millwall) right footed shot from the centre of the box is saved in the bottom left corner. Assisted by Liam Trotter with a headed pass.

90:00 +0:49

Tom Cairney (Blackburn Rovers) wins a free kick in the defensive half.

90:00 +0:49

Foul by Mark Beevers (Millwall).

89:51

Offside, Blackburn Rovers. Rudy Gestede tries a through ball, but David Dunn is caught offside.

88:41 Goal scored

Goal! Goal! Blackburn Rovers 3, Millwall 2. Steve Morison (Millwall) right footed shot from very close range to the centre of the goal. Assisted by Andrew Keogh with a cross following a corner.

88:11

Corner, Millwall. Conceded by Thomas Spurr.

87:51

Corner, Millwall. Conceded by Ben Marshall.

87:21 Substitution

Substitution Substitution, Blackburn Rovers. Rudy Gestede replaces Jordan Rhodes.

87:06

Foul by Jordan Rhodes (Blackburn Rovers).

87:06

Mark Beevers (Millwall) wins a free kick in the defensive half.

84:41 Goal scored

Goal! Goal! Blackburn Rovers 3, Millwall 1. David Dunn (Blackburn Rovers) header from the centre of the box to the bottom right corner. Assisted by Grant Hanley following a corner.

84:38

Attempt missed. Grant Hanley (Blackburn Rovers) header from the centre of the box misses to the left. Assisted by Tom Cairney with a cross following a corner.

84:18

Delay over. They are ready to continue.

84:08 Substitution

Substitution Substitution, Millwall. Justin Hoyte replaces Alan Dunne because of an injury.

81:10

Delay in match Alan Dunne (Millwall) because of an injury.

80:54

Corner, Blackburn Rovers. Conceded by David Forde.

80:53

Attempt saved. Jordan Rhodes (Blackburn Rovers) left footed shot from the left side of the box is saved in the bottom left corner. Assisted by David Dunn.

79:29 Booking

Booking Chris Taylor (Blackburn Rovers) is shown the yellow card for a bad foul.

79:24

Foul by Chris Taylor (Blackburn Rovers).

79:24

Martyn Waghorn (Millwall) wins a free kick in the attacking half.

78:35

Corner, Blackburn Rovers. Conceded by David Forde.

77:16

Corner, Blackburn Rovers. Conceded by Paul Robinson.

76:28 Substitution

Substitution Substitution, Millwall. Andrew Keogh replaces Nadjim Abdou.

76:12

Foul by Grant Hanley (Blackburn Rovers).

76:12

Steve Morison (Millwall) wins a free kick in the attacking half.

74:52 Substitution

Substitution Substitution, Blackburn Rovers. David Dunn replaces Joshua King because of an injury.

73:35

Attempt missed. Martyn Woolford (Millwall) left footed shot from outside the box misses to the left following a set piece situation.

72:52

Foul by Joshua King (Blackburn Rovers).

72:52

Paul Robinson (Millwall) wins a free kick in the defensive half.

72:26

Attempt missed. Jermaine Easter (Millwall) right footed shot from outside the box is close, but misses to the right.

70:44 Substitution

Substitution Substitution, Millwall. Jermaine Easter replaces Liam Feeney.

69:01

Attempt saved. Steve Morison (Millwall) header from the centre of the box is saved in the centre of the goal. Assisted by Alan Dunne with a cross.

68:36

Attempt blocked. Martyn Waghorn (Millwall) left footed shot from outside the box is blocked.

68:04

Corner, Millwall. Conceded by Chris Taylor.

65:44

Offside, Millwall. Paul Robinson tries a through ball, but Steve Morison is caught offside.

64:07

Attempt blocked. Jordan Rhodes (Blackburn Rovers) right footed shot from outside the box is blocked. Assisted by Scott Dann with a headed pass.

63:32 Booking

Booking Liam Feeney (Millwall) is shown the yellow card for a bad foul.

63:09

Joshua King (Blackburn Rovers) wins a free kick on the left wing.

63:09

Foul by Liam Feeney (Millwall).

60:20

Attempt saved. Jordan Rhodes (Blackburn Rovers) header from the centre of the box is saved in the centre of the goal. Assisted by Ben Marshall with a cross.

58:42

Jason Lowe (Blackburn Rovers) wins a free kick in the defensive half.

58:42

Foul by Liam Trotter (Millwall).

57:38

Attempt missed. Scott Malone (Millwall) left footed shot from outside the box is too high.

56:57

Foul by Jordan Rhodes (Blackburn Rovers).

56:57

David Forde (Millwall) wins a free kick in the defensive half.

53:52

Corner, Millwall. Conceded by Simon Eastwood.

53:49

Attempt saved. Martyn Woolford (Millwall) left footed shot from the left side of the box is saved in the top centre of the goal. Assisted by Steve Morison.

51:20

Attempt missed. Grant Hanley (Blackburn Rovers) header from the centre of the box misses to the left. Assisted by Tom Cairney with a cross following a corner.

50:51

Corner, Blackburn Rovers. Conceded by Liam Trotter.

50:04

Corner, Blackburn Rovers. Conceded by David Forde.

50:01

Attempt saved. Chris Taylor (Blackburn Rovers) left footed shot from outside the box is saved in the top centre of the goal. Assisted by Ben Marshall.

47:41 Goal scored

Goal! Goal! Blackburn Rovers 2, Millwall 1. Ben Marshall (Blackburn Rovers) header from the centre of the box to the bottom right corner. Assisted by Thomas Spurr with a cross.

45:00

Second Half begins Blackburn Rovers 1, Millwall 1.

45:00 +3:07 Half time

Half Time First Half ends, Blackburn Rovers 1, Millwall 1.

45:00 +2:38

Corner, Millwall. Conceded by Thomas Spurr.

44:45

Delay over. They are ready to continue.

43:59

Delay in match Grant Hanley (Blackburn Rovers) because of an injury.

43:42

Attempt blocked. Martyn Waghorn (Millwall) left footed shot from the centre of the box is blocked. Assisted by Steve Morison with a headed pass.

42:55

Foul by Tom Cairney (Blackburn Rovers).

42:55

Liam Trotter (Millwall) wins a free kick in the attacking half.

41:35 Goal scored

Goal! Goal! Blackburn Rovers 1, Millwall 1. Martyn Waghorn (Millwall) left footed shot from the left side of the six yard box to the top right corner. Assisted by Steve Morison with a cross.

40:22

Foul by Joshua King (Blackburn Rovers).

40:22

Alan Dunne (Millwall) wins a free kick in the defensive half.

38:35

Thomas Spurr (Blackburn Rovers) wins a free kick in the defensive half.

38:35

Foul by Steve Morison (Millwall).

36:14

Delay over. They are ready to continue.

35:10

Delay in match Paul Robinson (Millwall) because of an injury.

33:56

Chris Taylor (Blackburn Rovers) wins a free kick in the defensive half.

33:56

Foul by Liam Trotter (Millwall).

30:46

Attempt saved. Ben Marshall (Blackburn Rovers) right footed shot from outside the box is saved in the centre of the goal.

28:18

Attempt missed. Paul Robinson (Millwall) header from the right side of the six yard box misses to the left. Assisted by Martyn Waghorn with a cross following a corner.

27:48

Corner, Millwall. Conceded by Thomas Spurr.

27:30

Foul by Scott Dann (Blackburn Rovers).

27:30

David Forde (Millwall) wins a free kick in the defensive half.

25:49

Corner, Blackburn Rovers. Conceded by Scott Malone.

25:34

Tom Cairney (Blackburn Rovers) wins a free kick in the defensive half.

25:34

Foul by Nadjim Abdou (Millwall).

24:22 Booking

Booking Nadjim Abdou (Millwall) is shown the yellow card.

21:53 Goal scored

Goal! Goal! Blackburn Rovers 1, Millwall 0. Jordan Rhodes (Blackburn Rovers) right footed shot from outside the box to the bottom left corner. Assisted by Grant Hanley.

20:59

Offside, Millwall. Martyn Woolford tries a through ball, but Steve Morison is caught offside.

19:15

Tom Cairney (Blackburn Rovers) wins a free kick in the defensive half.

19:15

Foul by Liam Trotter (Millwall).

17:28

Foul by Joshua King (Blackburn Rovers).

17:28

Martyn Woolford (Millwall) wins a free kick on the left wing.

16:45

Foul by Grant Hanley (Blackburn Rovers).

16:45

Liam Trotter (Millwall) wins a free kick in the defensive half.

16:24

Attempt saved. Tom Cairney (Blackburn Rovers) left footed shot from a difficult angle and long range on the right is saved in the bottom right corner.

15:37

Joshua King (Blackburn Rovers) wins a free kick on the right wing.

15:37

Foul by Scott Malone (Millwall).

12:58

Corner, Millwall. Conceded by Grant Hanley.

12:41

Attempt blocked. Martyn Woolford (Millwall) left footed shot from the right side of the box is blocked. Assisted by Martyn Waghorn.

12:06

Hand ball by Chris Taylor (Blackburn Rovers).

10:31

Attempt blocked. Jordan Rhodes (Blackburn Rovers) right footed shot from outside the box is blocked. Assisted by Chris Taylor.

9:35

Attempt blocked. Ben Marshall (Blackburn Rovers) right footed shot from outside the box is blocked. Assisted by Tom Cairney.

6:50

Offside, Millwall. David Forde tries a through ball, but Steve Morison is caught offside.

3:51

Attempt missed. Liam Trotter (Millwall) header from the centre of the box is close, but misses the top right corner. Assisted by Liam Feeney with a cross following a corner.

3:23

Corner, Millwall. Conceded by Grant Hanley.

0:49

Corner, Millwall. Conceded by Scott Dann.

0:39

Attempt blocked. Martyn Waghorn (Millwall) left footed shot from outside the box is blocked. Assisted by Steve Morison.

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers