Millwall and Blackburn will face an FA Cup quarter-final replay on Wednesday after sharing a combative draw.
Andy Keogh's header hit the post in a poor first half while Blackburn did not create a chance until Jordan Rhodes fired over after the break.
Millwall continued to probe with Rovers keeper Jake Kean tipping over Danny Shittu's long-range effort before Rob Hulse missed from six yards out.
Blackburn improved towards the end, and Josh King hit the post with a header.
But Kenny Jackett's side will feel more aggrieved as they were in the ascendancy as the game finished, with Shittu testing Kean with another stinging shot late on.
- Danny Shittu's only goal this season was during the FA Cup fourth-round victory over Aston Villa. His previous goal was in March 2008 for Watford
It was hardly a thriller at The Den, but with a last-four place at stake Blackburn had to defend for the majority of the game as the two Championship teams head back to Lancashire in three days time still in the hat for the draw.
By then, they will know which team they could face in the semi-finals at Wembley, but on the basis of this encounter they will face a huge task against Premier League opposition.
Since winning in the FA Cup fifth round, both sides have had one win in nine league games between them and there was a lack of quality in front of goal, with Hulse the most guilty party during the second half.
Aside from Keogh's effort against the post, Millwall and Blackburn spent most of the first half sizing each other up where, in keeping with both teams' form, creative play was limited.
David Bentley looked more interested in causing a ruck, while Scott Dann was caught and cut by Rob Hulse's stray arm, but Millwall conjured up the majority of the openings.
The hosts were finding more gaps in midfield thanks to their 4-3-3 formation and it was in one such pocket of space that Jack Smith crossed for Keogh's effort, but the striker was denied by the upright.
Rhodes, whose goals have been invaluable to Blackburn this season, took until the second half before he had a decent opportunity. After an early sniff, he latched onto Bentley's right-wing cross after 47 minutes but his shot fizzed just over the bar at the back post.
Michael Appleton's side improved after the break, but the game almost exploded into life as Millwall went close to scoring twice in the space of two minutes just before the hour mark.
First, Shittu attempted an outrageous shot from 40 yards which was heading for the top corner before Kean tipped over. Hulse then missed a sitter from six-yards out after Smith's ball down the line was crossed in by Keogh.
Blackburn sensed the threat from their opponents and produced their best chance when King's header struck the same post as Keogh, following Bentley's deep cross.
But Millwall finished the stronger as Shittu tested Kean once more, although the hosts could not find a way through.
Blackburn boss Michael Appleton: "I was delighted with the way the lads went about it. I had three or four players who were only 60-70% fit and we've got another chance to get through.
"It's always going to be a battle when you come to the Den with the Millwall fans behind them. It was difficult because the ball was changing hands that many times, I'd be surprised if there were three or four [consecutive] passes in the whole match.
"There were a lot of tackles flying around today and a couple of cheap shots going on out there, which is disappointing. As long as we get a strong referee on Wednesday I don't see there being any problem."
Millwall boss Kenny Jackett: "Cheap shots? I don't think that was the case. I don't think that was my players at all.
"Goalscoring has been a problem for us in 2013. The win was there for us. It is frustrating. In 2012 it wasn't a problem for us, but I think today showed that when we do get on top of sides, we need to score and we didn't.
"There was no lack of passion from the players, but we didn't finish. It's something that we need to improve."
- 01 Forde Booked
- 02 Dunne
- 03 Shittu
- 12 Lowry Booked
- 16 Beevers
- 21 Smith
- 06 Trotter
- 19 C Taylor
- 07 Hulse
- 20 Keogh Booked
- 22 N'Guessan
- 33 M Taylor
- 25 Smith
- 27 Osborne
- 15 Feeney
- 26 Abdou
- 29 Saville
- 09 Marquis
- 34 Kean
- 16 Dann
- 27 Henley (Orr - 36' )
- 31 G Hanley Booked
- 06 Lowe Booked
- 12 Pedersen
- 14 Ms Olsson Booked
- 35 Bentley
- 09 Best Booked
- 11 Rhodes
- 15 King (Nuno Gomes - 87' )
- 29 Sandomierski
- 02 Orr (Dunn - 48' )
- 05 Givet
- 23 Rekik
- 08 Dunn
- 21 Nuno Gomes
- 25 Goodwillie
Live Text Commentary
Full Time The referee signals the end of the game.90:00 +2:44
Dany N'Guessan concedes a free kick for a foul on Scott Dann. Jake Kean takes the free kick.90:00 +2:23
The ball is delivered by David Dunn.90:00 +0:44
David Forde takes the direct free kick.90:00 +0:44 Booking
Booking Grant Hanley is booked.90:00 +0:23 Booking
Booking Andy Keogh goes into the book for unsporting behaviour.86:32 Substitution
Substitution Joshua King goes off and Miguel Nuno Gomes comes on.86:20
Jack Smith produces a drilled right-footed shot from 25 yards. Blocked by Scott Dann.85:21
Andy Keogh sends in a cross, Close range headed effort by Dany N'Guessan goes wide of the left-hand upright.84:14
Effort on goal by Dany N'Guessan from just inside the box goes harmlessly over the target.83:15
Free kick awarded for an unfair challenge on Liam Trotter by David Dunn. Direct free kick taken by Shane Lowry.82:36
Danny Shittu takes a shot. Save by Jake Kean.82:24
Centre by Chris Taylor, Grant Hanley makes a clearance.82:03
Chris Taylor takes the inswinging corner, Scott Dann makes a clearance.81:10
Jack Smith restarts play with the free kick.81:10 Booking
Booking Booking for Leon Best for unsporting behaviour.81:05
Leon Best handles the ball and concedes a free kick.80:26
Rob Hulse takes a shot. Jake Kean makes a comfortable save.78:41
Foul by Alan Dunne on Joshua King, free kick awarded. Markus Olsson takes the free kick.76:30
Corner taken by Morten Gamst Pedersen from the right by-line. Header from close range by Joshua King bounces off the post.
Corner from the right by-line taken by Morten Gamst Pedersen, save by David Forde.73:38
Corner taken left-footed by Morten Gamst Pedersen to the near post, clearance by Chris Taylor.71:40
The assistant referee signals for offside against Leon Best. Indirect free kick taken by David Forde.70:13
Dany N'Guessan concedes a free kick for a foul on Morten Gamst Pedersen. Free kick taken by Scott Dann.69:15
Mark Beevers concedes a free kick for a foul on Leon Best. Free kick crossed left-footed by Morten Gamst Pedersen, clearance by Danny Shittu.68:38
The ball is swung over by Andy Keogh, Header by Dany N'Guessan from deep inside the penalty area misses to the left of the goal.67:46
Centre by Alan Dunne, Andy Keogh produces a header from close range which goes wide of the left-hand upright.67:05
The referee blows for offside. Indirect free kick taken by David Forde.65:50
The official flags Rob Hulse offside. Free kick taken by Jake Kean.64:35
The ball is delivered by Andy Keogh, Rob Hulse takes a shot. Save by Jake Kean.63:41
Free kick awarded for a foul by Chris Taylor on Grant Hanley. Jake Kean restarts play with the free kick.62:48
The ball is swung over by Andy Keogh, Rob Hulse takes a shot. Comfortable save by Jake Kean.61:54
Andy Keogh challenges Joshua King unfairly and gives away a free kick. Morten Gamst Pedersen takes the free kick.60:26
Free kick awarded for a foul by Leon Best on Danny Shittu. Alan Dunne takes the direct free kick.58:31
Rob Hulse conjures a left-footed shot from inside the six-yard box that clears the bar.57:03
Corner from the left by-line taken by Chris Taylor, Close range headed effort by Danny Shittu misses to the right of the goal.56:47
Shot by Danny Shittu. Save by Jake Kean.55:35
Foul by Andy Keogh on Markus Olsson, free kick awarded. Jake Kean restarts play with the free kick.54:44
Short corner taken by David Bentley, Morten Gamst Pedersen has a shot on goal from outside the box which misses left.54:37
A cross is delivered by Joshua King, blocked by Alan Dunne.53:57
Leon Best concedes a free kick for a foul on Mark Beevers. Direct free kick taken by David Forde.52:44
Free kick crossed by Morten Gamst Pedersen, Jack Smith makes a clearance.52:44 Booking
Booking Booking for Shane Lowry for unsporting behaviour.52:39
Shane Lowry challenges David Bentley unfairly and gives away a free kick.51:22
Foul by Shane Lowry on David Bentley, free kick awarded. Morten Gamst Pedersen restarts play with the free kick.50:41
Free kick awarded for a foul by Leon Best on Danny Shittu. Direct free kick taken by David Forde.50:15
Andy Keogh takes a shot. Save made by Jake Kean.48:45
Joshua King challenges Andy Keogh unfairly and gives away a free kick. Alan Dunne takes the free kick.47:53 Substitution
Substitution David Dunn comes on in place of Bradley Orr.46:36
Jordan Rhodes produces a left-footed shot from close in that clears the bar.45:26
Unfair challenge on Markus Olsson by Rob Hulse results in a free kick. Jake Kean takes the free kick.45:01
The referee gets the second half started.45:00 +2:05 Half time
Half Time The referee blows for half time.42:29
Foul by Liam Trotter on Joshua King, free kick awarded. The free kick is delivered left-footed by Morten Gamst Pedersen from left wing, clearance made by Jack Smith.41:44
Dany N'Guessan produces a right-footed shot from the edge of the box and misses to the right of the goal.39:58
Foul by Leon Best on Chris Taylor, free kick awarded. David Forde restarts play with the free kick.39:35
Centre by Jack Smith, Header from close range by Andy Keogh bounces off the post.38:37
Bradley Orr gives away a free kick for an unfair challenge on Shane Lowry. Free kick crossed by Shane Lowry, Scott Dann manages to make a clearance.38:03
Unfair challenge on David Bentley by Dany N'Guessan results in a free kick. Free kick taken by Scott Dann.37:00
The assistant referee signals for offside against Dany N'Guessan. Indirect free kick taken by Jake Kean.35:52 Substitution
Substitution Bradley Orr on for Adam Henley.34:50
The ball is sent over by Chris Taylor, save by Jake Kean.34:11
The assistant referee flags for offside against Rob Hulse. Indirect free kick taken by Grant Hanley.31:53
Leon Best is flagged offside by the assistant referee. David Forde takes the indirect free kick.31:18
The ball is sent over by Shane Lowry, Grant Hanley manages to make a clearance. Effort from a long way out by Alan Dunne goes wide right of the goal.29:19
Liam Trotter produces a cross, save by Jake Kean.28:03
Corner taken right-footed by Chris Taylor to the near post, Foul by Dany N'Guessan on Jake Kean, free kick awarded. Jake Kean restarts play with the free kick.27:26
Shane Lowry delivers the ball from the free kick left-footed from left wing, clearance by Grant Hanley.27:26 Booking
Booking Jason Lowe is shown a yellow card for unsporting behaviour.27:22
Free kick awarded for a foul by Jason Lowe on Chris Taylor.25:20
Free kick taken by David Forde.25:20 Booking
Booking The referee cautions Markus Olsson for unsporting behaviour.25:01 Booking
Booking Booking for David Forde for unsporting behaviour.24:47
The referee penalises Markus Olsson for handball.23:26
Free kick awarded for an unfair challenge on Leon Best by Mark Beevers. David Bentley fires a strike on goal direct from the free kick.22:28
Effort from long distance by Liam Trotter goes wide right of the goal.20:48
Jason Lowe gives away a free kick for an unfair challenge on Chris Taylor. Free kick crossed left-footed by Shane Lowry, save by Jake Kean.20:08
Free kick awarded for an unfair challenge on Grant Hanley by Rob Hulse. Direct free kick taken by Jake Kean.19:19
Foul by Grant Hanley on Rob Hulse, free kick awarded. Jack Smith takes the free kick. Centre by Alan Dunne, Jake Kean makes a save.18:26
Rob Hulse fouled by Scott Dann, the ref awards a free kick. Direct free kick taken by Jack Smith.17:22
Rob Hulse challenges Adam Henley unfairly and gives away a free kick. Jake Kean takes the free kick.16:09
The assistant referee signals for offside against Dany N'Guessan. Indirect free kick taken by Jake Kean.14:56
Foul by Liam Trotter on Scott Dann, free kick awarded. Jake Kean takes the direct free kick.14:17
Jordan Rhodes is ruled offside. David Forde restarts play with the free kick.13:19
Liam Trotter gives away a free kick for an unfair challenge on Markus Olsson. Free kick taken by Jake Kean.11:06
Dany N'Guessan handles the ball and concedes a free kick. Morten Gamst Pedersen crosses the ball in from the free kick.9:04
Leon Best challenges Danny Shittu unfairly and gives away a free kick. David Forde takes the direct free kick.8:45
Dany N'Guessan is flagged offside by the assistant referee. Free kick taken by David Bentley.7:26
Dany N'Guessan delivers the ball.4:48
Chris Taylor gives away a free kick for an unfair challenge on Jason Lowe. Direct free kick taken by Jake Kean.2:29
Free kick awarded for a foul by David Bentley on Chris Taylor. The free kick is swung in right-footed by Chris Taylor, Jordan Rhodes manages to make a clearance.1:51
Unfair challenge on Liam Trotter by Jason Lowe results in a free kick. The free kick is swung in right-footed by Jack Smith, clearance made by Scott Dann.0:00
The game gets underway.
Live data and text provided by our data suppliers