Match ends, Millwall 0, Birmingham City 0.
Birmingham City shared the spoils with their former boss Gary Rowett for the second time this season as their trip to Millwall ended goalless.
Unlike the 1-1 draw at St Andrew's in late November, neither side could find the net this time, nor really looked much like doing so in a highly competitive scrap.
After an early miss by on-loan Scott Hogan, who beat the offside trap only to poke just wide, Kristian Pedersen's controversially disallowed second-half volley - for pushing by Blues defender Harlee Dean - was the closest either side came to scoring.
But it was still a 12th successive game without defeat - nine of them in the league - for Pep Clotet's men in yellow, which adds up to City's best run in eight years, since Chris Hughton's time in charge.
Birmingham climb a place to 14th, still four points behind 10th-placed Millwall and within 10 of sixth-placed Preston, with 11 games still to play. But it is probably too late for a play-off bid, as five of those nine games in this unbeaten league run have been draws.
However, it still adds to more positive vibes for Clotet's side than for Rowett's faltering Millwall, who have won just once in their past seven games - and failed to score in four of them.
The closest the Lions came was a late, deflected looping header tipped over by impressive Blues keeper Lee Camp.
Blues are back in London on Saturday for a trip to QPR, when Millwall will be hosting Bristol City.
The game was marred by a first-half incident involving Birmingham winger Jeremie Bela, who Blues boss Clotet claimed was racially abused by a fan close to the dug-out. He reported what he heard to the fourth official.
Birmingham City head coach Pep Clotet told BBC WM:
"I heard a comment, I followed the protocol we are told by the LMA (League Managers Association) and I made communication with the fourth official.
"I want to state clearly that it was one individual and I know clubs are working hard to get rid of this problem. But we have to make people understand that it is not acceptable in our game.
"You need to do a lot of things right to get a result against a team as tough as Millwall but our tactical organisation and the way we defended the box was superb.
"The goal was a clear goal in my opinion. I thought that even before I saw the footage back, but I know how hard it is for refs. If we'd score then the game might have changed."
Millwall manager Gary Rowett:
"If he's heard something, as managers we're told to report it to officials. The official said to me he'd heard a comment.
"The difficult bit is almost as though there's definitely guilt there because it's Millwall.
"I understand it and it has to be proven and if it is proven then I think we all agree that it's not something you want here or at any football ground, or anywhere for that matter."
- 15PearceSubstituted forSmithat 63'minutes
- 12RomeoBooked at 80mins
- 3M Wallace
- 7J Wallace
- 23BödvarssonSubstituted forMahoneyat 80'minutes
- 20BennettSubstituted forBradshawat 63'minutes
- 11BelaSubstituted forCrowleyat 66'minutes
- 22BellinghamSubstituted forKieftenbeldat 72'minutes
- David Webb
- Shots on Target
Second Half ends, Millwall 0, Birmingham City 0.
Attempt missed. Gary Gardner (Birmingham City) right footed shot from the centre of the box is high and wide to the left. Assisted by Kristian Pedersen following a set piece situation.
Attempt blocked. Lukas Jutkiewicz (Birmingham City) left footed shot from the right side of the box is blocked.
Foul by Ryan Woods (Millwall).
Lukas Jutkiewicz (Birmingham City) wins a free kick in the attacking half.
Corner, Millwall. Conceded by Lee Camp.
Ryan Woods (Millwall) wins a free kick on the right wing.
Foul by Lukas Jutkiewicz (Birmingham City).
Connor Mahoney (Millwall) wins a free kick in the attacking half.
Foul by Ivan Sunjic (Birmingham City).
Attempt missed. Matt Smith (Millwall) header from the centre of the box misses to the right. Assisted by Mahlon Romeo with a cross.
Attempt blocked. Jayson Molumby (Millwall) right footed shot from outside the box is blocked.
Corner, Millwall. Conceded by Kristian Pedersen.
Substitution, Millwall. Connor Mahoney replaces Jón Dadi Bödvarsson.
Mahlon Romeo (Millwall) is shown the yellow card for a bad foul.
Foul by Mahlon Romeo (Millwall).
Gary Gardner (Birmingham City) wins a free kick in the defensive half.
Attempt missed. Kristian Pedersen (Birmingham City) left footed shot from outside the box is close, but misses to the right.
Attempt blocked. Scott Hogan (Birmingham City) left footed shot from the right side of the box is blocked. Assisted by Daniel Crowley.