Stern John laid to rest Birmingham's play-off ghost with an injury-time winner at the New Den which condemned unlucky Millwall to a 1-0 defeat.
The Midlands outfit had lost three successive play-off semi-finals, but they
stunned the home crowd to snatch victory in the dying moments.
Striker John struck after Steve Vickers sneaked in at the far post to drill a
low left-footed cross to him four yards from goal and ensure Birmingham will
face Norwich in the final at Cardiff's Millennium Stadium on May 12.
And it was sweet relief for the Trinidad and Tobago international, twice
guilty of glaring misses, as his goal leaves his side just one win from a return
to the top flight after a 16-year absence.
Millwall held a psychological advantage going into the match after earning a
1-1 draw in the first leg, and were unbeaten since signing Dion Dublin on loan
from Aston Villa.
The 33-year-old dealt Birmingham boss and former Manchester United team-mate
Steve Bruce a blow with the late equaliser at St Andrews.
He was partnered up front by veteran Steve Claridge, recalled by manager Mark
McGhee in place of Neil Harris after recovering from a rib injury.
Bruce made two changes to the Birmingham line-up, recalling defender Vickers
and winger Paul Devlin, who missed the first leg with a groin injury.
Birmingham were looking to shake off their tag as perennial chokers after
stumbling in three successive play-off semi-finals.
McGhee lit the blue touch paper for the match by describing his team as caged
Lions waiting to pounce, but it was Birmingham who drew first blood when Bryan
Hughes was booked for an early foul on Steven Reid.
There is no love lost between these two sides, and it showed. The last time
Birmingham visited the New Den, both managers were banished from the dug-out and
missiles were thrown at a linesman in a nasty 1-1 draw in January.
The visitors started brightly, with Tommy Mooney shooting wide from distance,
and Devlin testing the Millwall defence with his pace.
Birmingham's travelling army were in good voice in front of an
uncharacteristically quiet Millwall crowd, whose team were taking time to
settle.
But little was working up front for either side in a full-blooded game full of
crisp tackles and wayward passing.
The game finally sparked to life after 38 minutes when Olivier Tebily won a
towering header from Martin Grainger's right-wing corner.
Tebily beat his marker to direct his effort goalwards only for the diminutive
Ronnie Bull to clear off the line with his chest.
Within a minute Millwall had countered at the other end, and lifelong Lions
fan Darren Purse was booked for a foul on the flying Tim Cahill.
But Birmingham cleared the resulting free-kick after an almighty goalmouth
scramble, and continued to look dangerous, with Tebily again going close from a
corner.
Cahill could have given Millwall the lead in first-half injury-time after
Vaesen made a mess of a Reid corner.
But his record of 13 games without a goal looked set to be extended as he
directed a diving header against the crossbar.
Past trouble between the sides had limited tickets for away fans at both legs
of this semi-final, but the Birmingham contingent among a 16,391 crowd were in
good voice.
But they were almost silenced after 50 minutes when Vaesen spilled a tame
David Livermore cross.
The ball fell invitingly for Dublin eight yards out but his weak shot trickled
just past the far post.
Nerves were clearly affecting both sides as John had time to spare after
racing clear of Matt Lawrence from a free-kick cleared by his defence.
The Birmingham striker was clean through with only keeper Warner to beat, but
blazed wastefully high over the bar.
And John failed to atone for his earlier miss by ignoring the well-placed Stan
Laziridis outside him and firing wide from just within the box inside the last
10 minutes.
But he turned the tie on its head with the winner at the death after Vickers
sneaked in at the far post to cross left-footed.
Teams
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.
Agg (1-2) Att: 16,391
Ref: G Laws (Whitley Bay).