Millwall 0 Birmingham City 1 Birmingham win 2-1 on aggregateBirminghamwere fourth-time lucky last night in their quest to reach a play-off final when Stern John struck 57 seconds into injury-time to take Steve Bruce's side into a confrontation with his old club Norwich in Cardiff a week on Sunday.
Just as it looked as if both sides would rue bad misses early in the second half, John appeared unmarked in the six-yard box to convert a cross from the left by another of Bruce's signings, Steve Vickers.
John also might have scored a few minutes earlier and overall this was a game notable more for tension than excitement.
The 1-1 draw between these teams in the first leg at St Andrews on Sunday meant Millwall had started with a slight advantage. The noise reverberating around the Den before kick-off suggested the home fans were confident of progressing to the final.
Most, though, must have expected a tight match. These sides also drew here in the league in January and Birmingham were unlikely to surrender easily after suffering the pain of three successive play-off semi-final failures.
The great fear for the visiting fans was that Steve Claridge, once a City player, or Dion Dublin, on loan from their rivals Aston Villa, would twist the knife this time. Yet Millwall struggled to get their strikers into play in a predictably physical, fractious first half.
Vickers was keeping a close eye on Claridge's off-the-ball runs and Darren Purse, from a family of Millwall fans, was sticking tight to Dublin. The determination of Bruce to stifle Millwall's attacking options was illustrated, too, by his decision to move Oliver Tebily into central midfield to try to halt Tim Cahill's surges.
Millwall did most of the pressing but their usual rhythm was slow to come, with Birmingham working hard to close down quickly.
When Cahill did force a cross past the outstretched foot of Tebily, Dublin was unable to make clean contact with his shot.
Although Birmingham had the occasional threatening moment, they were largely on the back foot. John's flashes of skill were not matched by penetration and Geoff Horsfield's untidy but hard-fought battle with Stuart Nethercott summed up much of the match.
It was scarcely a shock that the clearest chances of the first half came from set-pieces. First Martin Grainger's inswinging corner was met by Tebily's head but chested off the line by Ronnie Bull. Then, with the interval seconds away, Millwall went close. Nico Vaesen failed to hold Steven Reid's corner and Cahill's header grazed the bar.
When Vaesen was guilty of an even worse handling error five minutes into the second half, Dublin should have given Millwall the lead. The goalkeeper dropped David Livermore's cross at the feet of the former England striker but Dublin, near the edge of the six-yard box, rushed a left-foot shot which went wide.
That came amid intense Millwall pressure, though John wasted a glaring opportunity for Birmingham on the break. Racing clear on to Paul Devlin's pass from near halfway, he had only Tony Warner to beat but his effort flew into the stand. With matters finely balanced, Bruce sent on Stan Lazaridis and most spectators braced themselves for extra-time.
MILLWALL: Warner, Lawrence, Bull, Nethercott, Ward, Ifill, Cahill, Livermore, Reid, Dublin, Claridge. Subs Not Used: Gueret, Harris, Kinet, Bircham, Dyche.
BIRMINGHAM: Vaesen, Kenna, Grainger, Purse, Vickers, Devlin, Tebily, Bryan Hughes, Mooney (Lazaridis 62), John, Horsfield (Andrew Johnson 84). Subs Not Used: Bennett, Damien Johnson, Carter. Booked: Bryan Hughes, Purse, Vaesen. Goals: John 90.
Referee: G Laws.