El-Hadji Diouf's late penalty helped earn Leeds an FA Cup fourth-round tie at home against Tottenham as they came from behind to beat Birmingham.
Blues went ahead in a lifeless first half between the Championship sides when Nathan Redmond crossed for Wade Elliott to convert.
Luke Varney headed wide soon after but Leeds equalised when Diouf set up Ross McCormack following Sam Byram's cross.
Diouf then stepped up to chip in from the spot on 76 minutes.
It capped a fine 32nd birthday for Diouf and the turnaround came without 19-goal striker Luciano Becchio, who was missing because of illness after being a reported January transfer target for several clubs.
The Whites versus the Lilywhites
Leeds face Tottenham in the FA Cup fourth round for the second time in three years. The teams drew 2-2 at White Hart Lane on 23 January 2010, before Spurs won the replay 3-1.
Leeds' first win at St Andrew's since 1996 also provided them with their 100th in FA Cup history and sealed progress from the third round for only the second time in 10 years.
The visitors were backed by an impressive 1,547 travelling fans among a lacklustre overall crowd of 8,962, and even they had little to cheer in a poor opening period.
Marlon King and Elliott both had attempts on goal before Birmingham took the lead and both played their part in the opener.
King fed Redmond down the right and he delivered to the far post where Elliott side-footed across Jamie Ashdown.
Varney should have levelled within a minute but was off target, and Leeds also went close when Rodolph Austin's speculative effort was spilled by Colin Doyle.
The pressure finally told, with Diouf setting up McCormack, who was on hand to stroke home from eight yards.
Six minutes later, Austin's cross struck the hand of Robinson and, after much deliberation between the officials, Diouf was handed the chance to convert from 12 yards.
He did so with a cheeky chip and, although Elliott, Nikola Zigic and Peter Lovenkrands all went close for Birmingham, Leeds held on.
Birmingham assistant Terry McDermott:
"It is a big disappointment because I'm sure the fans would have loved to have seen Tottenham playing here.
"We're disappointed. I think we're a bit more than disappointed actually, we're devastated really because we wanted a big game like that.
"Obviously it would have helped the club as well financially, but it's not to be."
Leeds manager Neil Warnock:
"I've heard the rumours [about Luciano Becchio leaving] but I think he has texted Shaun Harvey (Leeds chief executive) to say he is at home.
"So he's obviously heard the rumours. We lost Becchio this morning, he came off training yesterday and said he felt sick.
"And then the doc said this morning that he was sick in the night so he didn't travel."
Full Time The referee signals the end of the game.
Free kick awarded for a foul by Curtis Davies on Michael Brown. Free kick taken by Jamie Ashdown.
90:00 +1:38 Booking
Booking Jamie Ashdown receives a caution for time wasting.
Peter Lovenkrands has a headed effort at goal from deep inside the area missing to the left of the target.
Wade Elliott takes the direct free kick.
90:00 +0:27 Substitution
Substitution (Leeds) makes a substitution, with Jason Pearce coming on for El-Hadji Diouf.
Foul by Michael Brown on Christopher Burke, free kick awarded.
A cross is delivered by Paul Caddis, Peter Lovenkrands takes a shot. Brilliant save by Jamie Ashdown. Inswinging corner taken right-footed by Wade Elliott from the left by-line, Tom Lees manages to make a clearance.
Outswinging corner taken from the right by-line by Wade Elliott, Nikola Zigic takes a shot. Clearance by Samuel Byram.
Rodolph Austin gives away a free kick for an unfair challenge on Paul Robinson. Steven Caldwell takes the free kick.
The ball is delivered by El-Hadji Diouf, clearance made by Steven Caldwell.
Substitution Nikola Zigic replaces Nathan Redmond.
Effort on goal by Paul Green from just inside the penalty box goes harmlessly over the target.
Outswinging corner taken by El-Hadji Diouf.
Rodolph Austin restarts play with the free kick.
Booking Booking for Wade Elliott for unsporting behaviour.
Wade Elliott concedes a free kick for a foul on Luke Varney.
Rodolph Austin takes a shot from 35 yards and missed to the left of the net. Free kick awarded for an unfair challenge on Paul Caddis by Luke Varney. Paul Caddis restarts play with the free kick.
Substitution Ravel Morrison leaves the field to be replaced by Peter Lovenkrands.
Assist by Rodolph Austin.
75:59 Goal scored
Goal! - El-Hadji Diouf - Birmingham 1 - 2 Leeds Utd Penalty taken right-footed by El-Hadji Diouf and scored. Birmingham 1-2 Leeds.
The ball is delivered by Rodolph Austin, Paul Robinson gets a block in. Paul Robinson is penalised for a handball.
The official flags El-Hadji Diouf offside. Colin Doyle takes the free kick.
The ball is sent over by Luke Varney, Paul Green takes a shot. Save made by Colin Doyle.
Inswinging corner taken by Wade Elliott from the left by-line, clearance made by Lee Peltier.
Assist by El-Hadji Diouf.
69:16 Goal scored
Goal! - Ross McCormack - Birmingham 1 - 1 Leeds Utd Ross McCormack gets on the score sheet with a goal from deep inside the penalty box to the bottom right corner of the goal. Birmingham 1-1 Leeds.
The ball is crossed by Samuel Byram.
Free kick awarded for an unfair challenge on El-Hadji Diouf by Paul Robinson. Ross McCormack delivers the ball from the free kick right-footed from right wing, Unfair challenge on Curtis Davies by El-Hadji Diouf results in a free kick. Direct free kick taken by Colin Doyle.
Unfair challenge on Michael Brown by Morgaro Gomis results in a free kick. Jamie Ashdown takes the free kick.
Free kick taken by Paul Caddis.
Booking Booking for Michael Brown for unsporting behaviour.
Corner from right by-line taken by El-Hadji Diouf. Marlon King fouled by Michael Brown, the ref awards a free kick.
Unfair challenge on Luke Varney by Curtis Davies results in a free kick. Lee Peltier restarts play with the free kick.
Paul Green takes a outswinging corner from the right by-line played to the near post.
Nathan Redmond is caught offside. Indirect free kick taken by Jamie Ashdown.
Luke Varney gives away a free kick for an unfair challenge on Paul Caddis. Paul Caddis takes the direct free kick.
Outswinging corner taken from the right by-line by Wade Elliott.
Inswinging corner taken by El-Hadji Diouf, comfortable save by Colin Doyle.
Michael Brown challenges Morgaro Gomis unfairly and gives away a free kick. Free kick taken by Wade Elliott.
Centre by Aidan White, Curtis Davies manages to make a clearance.
A cross is delivered by Rodolph Austin.
Shot from 25 yards by Rodolph Austin. Save by Colin Doyle.
Inswinging corner taken right-footed by El-Hadji Diouf from the left by-line, clearance by Wade Elliott.
El-Hadji Diouf fouled by Steven Caldwell, the ref awards a free kick. Michael Brown restarts play with the free kick.
The ball is delivered by Nathan Redmond, Tom Lees makes a clearance.
The referee blows for offside. Jamie Ashdown restarts play with the free kick.
The referee blows his whistle to start the second half.
45:00 +2:16 Half time
Half Time The half-time whistle blows.
Marlon King fouled by Lee Peltier, the ref awards a free kick. Paul Caddis takes the free kick.
Foul by Michael Brown on Wade Elliott, free kick awarded. Free kick taken by Paul Robinson.
Free kick awarded for an unfair challenge on Rodolph Austin by Morgaro Gomis. Samuel Byram restarts play with the free kick.
Ross McCormack shoots direct from the free kick.
Booking Morgaro Gomis is shown a yellow card.
Morgaro Gomis gives away a free kick for an unfair challenge on El-Hadji Diouf.
Free kick awarded for a foul by Morgaro Gomis on El-Hadji Diouf. Direct free kick taken by El-Hadji Diouf.
Headed effort from deep inside the area by Luke Varney misses to the right of the goal.
Assist on the goal came from Nathan Redmond.
35:54 Goal scored
Goal! - Wade Elliott - Birmingham 1 - 0 Leeds Utd Wade Elliott grabs a goal from inside the six-yard box to the top left corner of the goal. Birmingham 1-0 Leeds.
Nathan Redmond delivers the ball,
Marlon King takes a shot. Save by Jamie Ashdown.
Foul by Aidan White on Christopher Burke, free kick awarded. Shot on goal comes in from Nathan Redmond from the free kick.
Inswinging corner taken by El-Hadji Diouf from the left by-line.
Wade Elliott delivers the ball, save made by Jamie Ashdown.
Christopher Burke takes a shot from a long way out which goes wide of the right-hand upright.
The assistant referee flags for offside against Ross McCormack. Indirect free kick taken by Colin Doyle.
Morgaro Gomis gives away a free kick for an unfair challenge on Aidan White. The free kick is delivered right-footed by El-Hadji Diouf from left wing. The referee blows for offside against Ross McCormack. Colin Doyle restarts play with the free kick.
Lee Peltier fouled by Nathan Redmond, the ref awards a free kick. Jamie Ashdown takes the free kick.
Unfair challenge on Morgaro Gomis by Luke Varney results in a free kick. Curtis Davies takes the free kick.
The ball is crossed by Wade Elliott, Tom Lees makes a clearance.
Wade Elliott has an effort at goal from outside the box which goes wide left of the goal.
The ball is sent over by Marlon King.
Luke Varney is ruled offside. Paul Caddis restarts play with the free kick.
Luke Varney has a headed effort at goal from deep inside the area missing to the left of the target.
Substitution Aidan White on for Adam Drury.
Curtis Davies fouled by Ross McCormack, the ref awards a free kick. Curtis Davies takes the free kick.
Free kick awarded for an unfair challenge on Curtis Davies by El-Hadji Diouf. Direct free kick taken by Colin Doyle.
Free kick awarded for a foul by Luke Varney on Curtis Davies. Colin Doyle takes the free kick.
Rodolph Austin produces a right-footed effort from long distance that goes harmlessly over the bar.
Michael Brown fouled by Wade Elliott, the ref awards a free kick. Jamie Ashdown takes the free kick.
Long distance shot from Rodolph Austin misses to the left of the target.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.