Middlesbrough dented Birmingham's European ambitions with victory in a goal-packed game at The Riverside. Boro's Gaizka Mendieta scored early and Massimo Maccarone doubled their lead before Mikael Forssell cut the deficit.
Gareth Southgate scored to make it 3-1 to Boro but Clinton Morrison's late first-half goal was cancelled out by Maccarone's second of the match.
Forssell scored again on 59 minutes, but Szilard Nemeth made the game safe for Boro at the death.
With blustery winds making life difficult, Boro quickly adopted a policy of keeping the ball on the ground and the approach paid dividends inside the first five minutes.
Joseph-Desire Job shrugged off Kenny Cunningham's challenge before slotting the ball through to Juninho. The Brazilian passed to Mendieta who finished well in the far corner.
On 21 minutes the in-form Mendieta scythed through Birmingham's defence before crossing low to the far post where Maccarone finished clinically.
Just two minutes later though, Birmingham's Stan Lazaridis caught Danny Mills in possession on the edge of the box and supplied Forssell who curled the ball past Mark Schwarzer to make it 2-1.
 | KEY MOMENTS 5 mins: Mendieta puts Boro into an early lead 21 mins: Maccarone extends the home side's lead 23 mins: Forssell cuts the deficit for the Blues 30 mins: Southgate restores Boro's two-goal cushion 45 mins: Morrison scores Birmingham's second 45 mins: Within seconds, Maccarone scores his second and Boro's fourth 59 mins: Forssell reinvigorates Birmingham with his second 90 mins: Nemeth seals it for Boro |
Lazaridis then had the chance to equalise with a free header but was denied by a Schwarzer's superb save as he tipped the ball onto the crossbar. Middlesbrough took advantage of the let-off to make it 3-1 in the 30th minute with Mendieta involved yet again.
Mills headed Mendieta's corner back across goal where the waiting Gareth Southgate scored with ease.
Jonathan Greening could have put Boro out of sight after Juninho's brilliant pass and Maccarone's stepover put him in space, but his shot went wide.
With both defences all at sea, Forssell then hit the post with a header, while Schwarzer distinguished further himself with outstanding saves from Bryan Hughes and Lazaridis.
Just before half time, Morrison followed up a shot from Forssell to score from close range after Schwarzer had again saved well.
But Birmingham were unable to hold on until the break, with Maccarone re-establishing Boro's two-goal advantage within seconds.
The Italian latched onto another Mendieta pass and beat Martin Taylor on the edge of the box before cracking an unstoppable shot into the top corner.
There was still time for Birmingham to attempt another comeback and Schwarzer had to be alert to divert Morrison's shot onto the crossbar.
Birmingham substitute Stern John blasted over early in the second half while Martin Taylor wasted a great opportunity.
But Forssell made no such mistake on 59 minutes with his second goal of the match to make it 4-3.
Martin Grainger's free-kick found the Finn lurking between Southgate and Ugo Ehiogu and his header bounced off the post and through Schwarzer's legs to cross the line.
But despite more efforts on goal from Birmingham, Boro had the last word with Szilard Nemeth's 90th-minute effort putting the gloss on a thrilling match.
Middlesbrough: Schwarzer, Mills, Ehiogu, Southgate, Queudrue, Mendieta, Doriva, Juninho Paulista (Nemeth 76), Greening, Maccarone (Ricketts 75), Job (Downing 64). Subs not used: Jones, Parnaby. Booked: Greening, Queudrue.
Birmingham: Maik Taylor, Grainger, Cunningham, Upson, Martin Taylor, Lazaridis, Hughes, Clemence, Johnson (John 45), Morrison, Forssell. Subs not used: Bennett, Cisse, Carter, Barrowman.
Attendance: 30,244.
Referee: U Rennie (S Yorkshire).