Birmingham closed the gap on Coca-Cola Championship leaders Wolves to three points - for a couple of hours at least - but they were pushed all the way by struggling Watford.
Birmingham stay four points above third-placed Reading after a 3-2 victory over the Hornets at St Andrews.
Tamas Priskin gave the visitors a shock lead after only seven minutes but Kevin Phillips equalised immediately and Marcus Bent's long-ranger put the hosts ahead (18).
Substitute Cameron Jerome made it 3-1 (85) moments after he had had another effort disallowed but Watford were not finished and Ross Jenkins made it a nervous last few minutes with the visitors' second (89).
Reading triumphed in adversity to beat Barnsley 1-0 at Oakwell.
The match was delayed after the Royals' coach broke down and they were reduced to 10 men after 35 minutes when Jimmy Kebe was dismissed for violent conduct. However, they grabbed the only goal of the match 64 minutes in through Brynjar Gunnarsson.
Burnley ended a brilliant week on a high with a 3-2 victory over fellow promotion chasers Sheffield United at Bramall Lane.
The Clarets found out at lunchtime they will play Tottenham in the semi-finals of the Carling Cup following their midweek victory over Arsenal. And they held onto fourth place after an eventful game. Martin Paterson put the visitors ahead after 19 minutes when Steven Thompson's header hit the striker and went in.
James Beattie equalised with a penalty after keeper Brian Jensen fouled Billy Sharp (36), but another spot-kick, this time from Graham Alexander (42) following Gary Naysmith's foul on Chris Eagles, saw Burnley go in ahead at the break.
Eagles then put Owen Coyle's side further in front (79) with a 25-yard effort but there was still time for Stephen Quinn's low free-kick to reduce the deficit (87).
Copyright (c) PA Sport 2008, All Rights Reserved.