It looked like being a very Murray Christmas for Palace when two classic poacher goals from Glenn Murray put the Eagles ahead at St Andrews, but they were pegged back via a second late equaliser in as many games as Birmingham snatched a 2-2 draw.
Palace were quick out of the blocks and their wingers began to cause havoc straight away. Wilfried Zaha saw a shot flash just over the crossbar after 30 seconds, and after eight minutes Yannick Bolasie chased what seemed to be a lost cause but won the ball from Paul Robinson, beat a defender and forced Jack Butland into a superb save.
Having been second best for the opening 18 minutes, Birmingham finally created their first opportunity when top scorer Marlon King let fly from 25 yards and Chris Burke went close when he took aim on 33 minutes but couldn't quite bend the ball into the top corner as Lee Clark's side were restricted to shots from distance.
Two minutes later Burke carved out the home side's best chance of the half when he dispossessed captain Kagisho Dikgacoi in midfield and played in Peter Lovenkrands, but fingertips of Speroni denied the Dane with Curtis Davies heading the resulting corner wide.
Having survived those scares, Palace went up the other end and ended up taking a deserved lead six minutes before half-time. Bolasie worked his way to the Blues' byline after a neat one-two with Moritz, and his low cross was bundled into the back of the net by Murray from close range to open the scoring.
Two minutes later Owen Garvan then tested Butland with a low strike that was edging into the bottom corner but the England under 21 shot-stopper dived low to push it around his post and ensure his side only trailed by the one goal at the break.
The young keeper was soon in action again when Bolasie blasted towards goal from 30 yards, but moments later Eagles had a great opportunity to double their lead when Zaha picked the ball up from a Birmingham corner and dribbled from box to box before teeing up Moritz, but the Brazilian saw his shot blocked by Butland.
But they did manage to make it 2-0 when Jonathan Parr created an overlap down the left and the left-back's low centre was tucked home by the prolific Murray to notch his 20th goal of an incredible season.
Finding his side two goals down, Clark thew on giant Nikola Zigic and two minutes later the Serbian striker was celebrating when the used every inch of his 6'7'' frame to head King's cross past Speroni and give his side a way back into the game.
Palace then survived a what seemed like a certain penalty when Lovenkrands stumbled in the box, but fortunately for the Eagles the referee saw it as a dive, but the Blues made their pressure tell when their increased threat in the air brought about the equaliser on 82 minutes when Papa Bouba Diop powered home a corner to complete the comeback.
Debutant Danny Gabbidon came close to putting his back in front when he headed a corner narrowly wide in the final minute but the Eagles will have been disappointed to have dropped two points after playing so well for most of the game.
Birmingham: Butland, Caldwell, Davies, Burke (Zigic 65), King, Lovenkrands, Elliott (Hall 56), Caddis (Hancox 58), Robinson, Bouba Diop, Reilly.
Subs not used: Doyle, Ibanez, Morrison, Redmond, Hall.
Booked: Burke and Lovenkrands.
Crystal Palace: Speroni, Ward, Parr, Bolasie, Dikgacoi, Garvan, Zaha, Murray (Wilbraham 82), Delaney, Ramage, Moritz (Gabbidon 77)
Subs not used: Price, Easter, Moxey, O'Keefe, Appiah,