Crystal Palace striker Andy Johnson sealed his team's first Premiership away win of the season on his return to former club Birmingham.
Johnson continued Palace's recent revival by racing on to Wayne Routledge's pass to fire past Maik Taylor four minutes before half-time.
Birmingham dominated, but Palace goalkeeper Gabor Kiraly saved well from Jesper Gronkjaer and Matthew Upson.
Fitz Hall also saved Palace with a goal-line clearance from Dwight Yorke.
Birmingham dominated possession in the first-half, but were betrayed by a shortage of confidence after a poor start to the season.
Jesper Gronkjaer almost gave Birmingham an early lead when he brought a fine diving save from Palace's Hungarian goalkeeper Kiraly with a powerful angled drive.
Kiraly was less impressive after 36 minutes, when he completely missed Robbie Savage's free-kick and was grateful to see Hall clear Yorke's header off the line.
And Palace made the most of the reprieve to take the lead four minutes before the interval.
Inevitably it was old boy Johnson who was the scorer, providing a composed finish past goalkeeper Taylor from Routledge's through ball after Damien Johnson had conceded possession.
Palace suffered a blow in the opening moments of the second half when captain Tony Popovic, who injured his knee in an earlier tackle with Emile Heskey, limped off to be replaced by Uruguayan Gonzalo Sorondo.
They almost hit Birmingham on the break again when Routledge broke clear, but failed to find the target.
Mario Melchiot attempted to lift Birmingham's spirits with a surging run and powerful drive that was blocked by Kiraly's legs.
Birmingham made a change on the hour, sending on veteran Darren Anderton for Stan Lazaridis.
Palace were pushed back, but Birmingham were struggling to create chances.
Kiraly looked uncertain under pressure, but he was able to scramble Matthew Upson's header to safety after 77 minutes.
Birmingham were frustrated, particularly when referee Dermot Gallagher ignored penalty claims when Aki Riihilahti appeared to haul down Stephen Clemence.
Birmingham: Maik Taylor, Melchiot, Cunningham (Clapham 82),
Upson, Lazaridis (Anderton 60), Gronkjaer,
Johnson (Clemence 85), Savage, Gray, Yorke, Heskey.
Subs Not Used: Tebily, Vaesen.
Crystal Palace: Kiraly, Boyce, Hall, Popovic (Sorondo 47),
Granville, Routledge, Riihilahti, Hughes (Derry 90), Watson,
Kolkka (Freedman 88), Johnson.
Subs Not Used: Speroni, Andrews.
Goals: Johnson 41.
Ref: D Gallagher (Oxfordshire).