Match ends, Millwall 0, Doncaster Rovers 0.
Millwall and Doncaster earned what could prove to be a valuable point in their attempts to avoid relegation from the Championship.
The pair are one point above the bottom three with two games left and have four teams below them.
Abdoulaye Meite was sent off for Doncaster following his mistimed challenge on Stefan Maierhofer.
However, Sam Johnstone was inspired in the visitors' goal denying Shaun Williams and Steve Morison.
The Lions are still searching for their first home win since January but they started the brighter of the two sides when Scott McDonald collected a Maierhofer flick, but his close-range shot deflected wide off Gabriel Tamas for a corner.
The game changed moments before half-time when Ivorian Meite was dismissed after diving into a high, mistimed tackle on Maierhofer, leaving referee Fred Graham no choice but to show a red card.
Millwall made their numerical advantage count after the break as the home side laid siege to the Doncaster box.
Williams' long-range effort forced a magnificent save from of Johnstone and the goalkeeper then tipped a thunderous Morison volley over the bar before watching the former Norwich striker head a deep corner against the frame of the goal.
At the other end, Doncaster had a penalty claim dismissed when goalkeeper David Forde fumbled a cross and bundled over striker Chris Brown.
A last-ditch challenge from Rovers' impressive Paul Quinn prevented Simeon Jackson tapping into an open net 10 minutes from time.
Millwall boss Ian Holloway: "I'm not disappointed at all, I'm pleased with the performance.
"Funnily enough I thought the referee changed the course of the game. I don't think it was a sending off at all. I thought at most, at worst, it was a yellow card.
"Then the expectation of everyone is that you're up against 10 men. It's easier for them to sit in, have an excuse to sit in. It was just a matter of time until we scored. I still can't really believe that we haven't.
"But that's life. We keep going. We were the better team.
"Well done to them (Doncaster) to show that sort of spirit. I thought they got that from the referee. I think they felt aggrieved and I think they held themselves in and even now I can see that save from Morison.
"Gracious me where did that hand come from? I thought it was in. I was celebrating."
Doncaster boss Paul Dickov: "I'm immensely proud of the players, especially the second-half performance.
"You talk about players putting bodies on the line for the club and for the fans and their team-mates and I had that in abundance in the second half.
"It's not (a red card). I didn't think it at the time, I've seen it numerous times. Ian Holloway for me hit the nail on the head at the time when he said it's debatable whether or not it was a yellow.
"They both went for the ball. I've been told it was six studs in the chest - it was nowhere near his chest.
"In a game of this magnitude it's the wrong decision. I don't want to sound as if I'm moaning about referees all the time but some of the major decisions that went against us are not good enough."
- 10BaileyBooked at 86mins
- 16BeeversBooked at 45mins
- 42MaierhoferSubstituted forJacksonat 67'minutes
- 27McDonaldSubstituted forEasterat 67'minutes
- 11WoolfordSubstituted forMorisonat 45'minutes
- 20MéitéBooked at 43mins
- 22RobinsonSubstituted forMcCombeat 89'minutes
- 11CotterillBooked at 58mins
- 21De Val Fernandez
- Fred Graham
- Shots on Target
Second Half ends, Millwall 0, Doncaster Rovers 0.
Attempt blocked. Nicky Bailey (Millwall) right footed shot from outside the box is blocked. Assisted by Shaun Williams.
Substitution, Doncaster Rovers. Jamie McCombe replaces Theo Robinson.
Attempt blocked. Steve Morison (Millwall) right footed shot from the centre of the box is blocked. Assisted by Mark Beevers with a headed pass.
Attempt missed. David Cotterill (Doncaster Rovers) right footed shot from outside the box is too high from a direct free kick.
Nicky Bailey (Millwall) is shown the yellow card for a bad foul.
Foul by Nicky Bailey (Millwall).
David Cotterill (Doncaster Rovers) wins a free kick in the attacking half.
Corner, Millwall. Conceded by Gabriel Tamas.
Attempt blocked. Shaun Williams (Millwall) left footed shot from outside the box is blocked.
Attempt missed. Lee Martin (Millwall) right footed shot from the centre of the box misses to the right. Assisted by Shaun Williams with a cross following a corner.
Corner, Millwall. Conceded by Paul Quinn.
Attempt saved. Steve Morison (Millwall) header from the right side of the box is saved in the top right corner. Assisted by Mark Beevers.
Corner, Millwall. Conceded by Gabriel Tamas.
Carlos Edwards (Millwall) wins a free kick in the defensive half.
Foul by David Cotterill (Doncaster Rovers).
Attempt blocked. Paul Keegan (Doncaster Rovers) right footed shot from outside the box is blocked.
Attempt missed. Shaun Williams (Millwall) left footed shot from outside the box is too high.
Attempt saved. Scott Malone (Millwall) header from the left side of the box is saved in the top centre of the goal. Assisted by Lee Martin with a cross.