West Ham remain in the hunt for automatic promotion after Ricardo Vaz Te's late penalty salvaged a point against fourth-placed Birmingham.
Blues looked set for victory when goals by Jordon Mutch, Marlon King and Chris Burke put them 3-1 up at the break.
But Sam Allardyce's side dominated after the break and Carlton Cole's low volley put them back in contention.
Vaz Te, who had earlier scored a header, then netted with a minute left as the points were shared.
The draw leaves the Hammers three points behind second-placed Reading, who take on Brighton on Tuesday night in their game in hand.
West Ham's home form
- 9 April - D 3-3 v Birmingham
- 31 March - L 2-4 v Reading
- 20 March - D 1-1 v Middlesbrough
- 10 March - D 1-1 v Doncaster
- 7 March - D 1-1 v Watford
- 25 February - D 0-0 v Crystal Palace
- 14 February - D 1-1 v Southampton
But the point will do little to appease those West Ham fans who have been frustrated with both the style of football played under Allardyce and a recent lack of form, which has seen the Hammers win just three of their last 10 games.
A win for Birmingham would have seen them close to within three points of Allardyce's side, but they remain firmly in the play-off places after a ruthlessly efficient first half in which they clinically took their chances.
Midfielder Mutch opened the scoring when he exchanged passes with King before advancing forward and rifling in a left-footed shot from 25 yards.
And King then doubled the lead three minutes later, breaking a static offside trap to run on and finish low past Robert Green.
Vaz Te gave the home side hope at the end of the first half, heading in from a corner to score in his fourth consecutive game.
But there was still time for Chris Hughton's men to take advantage of more dismal defending and score a third in stoppage time. A corner was only half cleared and when Burke hit a scuffed shot back through a pack of bodies the ball somehow found its way into the corner.
The home side were much improved after the break and pulled a goal back with 20 minutes left when Cole was afforded time and space inside the area to control Kevin Nolan's pass and drive into the far corner.
And they drew level when substitute Henri Lansbury's shot was handled by Chris Burke. Vaz Te took responsibility and drilled the penalty down the middle to secure a sixth draw in the last 10 games.
West Ham boss Sam Allardyce: "The players, when we set out to win a game of football, they need to be aware of what the opposition do and what they don't do and what we did was play straight into Birmingham's hands in the first half.
"There wasn't enough determination in the team by the players who defended that corner to say these boys are not going to score here at all costs.
"We've paid for a sloppy first half yet again and unfortunately while it's a magnificent comeback once again it's only one point and not three and three is what we wanted."
Birmingham boss Chris Hughton: "It's a good point here, you can only get the wins that you need to get and get the points that you need to get and you hope that some of the other results go for you.
"And I think the results of late have been good for us but whether we get into that top six or not won't be down to other teams it will be down to us. If we can keep the momentum we've got at the moment hopefully we'll be OK.
"It was tough to keep it going for 90 minutes but we are a team that have come here and scored three goals. There won't be many that do that this season.
"I've only got good things to say about my team and I thought we were excellent and well worthy of the draw - it's not easy playing two games in two games."
- 01 Green
- 02 Reid
- 03 McCartney (Collins - 34' )
- 05 Tomkins
- 15 Faye
- 04 Nolan Booked
- 16 Noble (Baldock - 82' )
- 32 O'Neil
- 08 Maynard (Lansbury - 46' Booked )
- 09 Cole
- 12 Vaz Te
- 20 Demel
- 25 Collins
- 14 Taylor
- 22 Lansbury
- 07 Baldock
- 01 Myhill
- 03 Murphy
- 04 Caldwell
- 06 Ramage
- 24 Davies
- 07 Burke Booked
- 08 N'daw Booked (Zigic - 68' Booked )
- 12 Mutch
- 15 Elliott
- 18 Fahey
- 09 King (Townsend - 80' )
- 13 Doyle
- 10 Huseklepp
- 11 Townsend
- 22 Redmond
- 19 Zigic
Live Text Commentary
Full Time The final whistle is blown by the referee.90:00 +2:51
Shot on goal by James Tomkins from just inside the area goes over the target.90:00 +1:47
Henri Lansbury takes a shot. Sam Baldock gets a block in.88:14
The assist for the goal came from Henri Lansbury.88:14 Goal scored
Goal! - Ricardo Vaz Te - West Ham 3 - 3 Birmingham Placed penalty scored by Ricardo Vaz Te. West Ham 3-3 Birmingham.87:06 Booking
Booking The referee shows Chris Burke a yellow card.86:38
Henri Lansbury takes a shot. Blocked by Chris Burke. Chris Burke is adjudged to have handled the ball.86:07
Inswinging corner taken right-footed by Gary O'Neil from the left by-line, clearance made by Steven Caldwell.85:39
Nikola Zigic is flagged offside by the assistant referee. Robert Green takes the indirect free kick.84:48
Gary O'Neil takes the outswinging corner, save by Boaz Myhill.82:18
Outswinging corner taken from the right by-line by Gary O'Neil.81:01
Robert Green takes the free kick.81:01 Substitution
Substitution (West Ham) makes a substitution, with Sam Baldock coming on for Mark Noble.81:01
Henri Lansbury fouled by Jordon Mutch, the ref awards a free kick.80:32
Kevin Nolan takes a shot. Boaz Myhill makes a save.79:33
Robert Green takes the direct free kick.79:33 Substitution
Substitution Marlon King goes off and Andros Townsend comes on.79:33
The assistant referee signals for offside against Marlon King.77:50
Outswinging corner taken from the right by-line by Gary O'Neil, David Murphy manages to make a clearance.76:54
The assistant referee signals for offside against Marlon King. Robert Green restarts play with the free kick.
Effort on goal by Danny Collins from inside the area goes harmlessly over the bar.74:10
Carlton Cole produces a left-footed shot from just outside the area that goes harmlessly over the target.73:12
Nikola Zigic has a headed effort at goal from close in which goes wide right of the goal.71:42
Robert Green restarts play with the free kick.71:42 Booking
Booking The referee books Nikola Zigic for unsporting behaviour.71:27
Free kick awarded for an unfair challenge on Winston Reid by Nikola Zigic.69:58
Kevin Nolan provided the assist for the goal.69:58 Goal scored
Goal! - Carlton Cole - West Ham 2 - 3 Birmingham Carlton Cole gets on the score sheet with a goal from inside the box to the bottom right corner of the goal. West Ham 2-3 Birmingham.69:31
The referee blows for offside against Marlon King. Ricardo Vaz Te takes the indirect free kick.67:33
David Murphy restarts play with the free kick.67:33 Substitution
Substitution Nikola Zigic comes on in place of Guirane N'Daw.67:33 Booking
Booking Kevin Nolan is given a yellow card.67:18 Booking
Booking Henri Lansbury receives a yellow card for dissent.66:45
Chris Burke fouled by Winston Reid, the ref awards a free kick.63:34
Free kick awarded for an unfair challenge on Carlton Cole by Guirane N'Daw. Mark Noble restarts play with the free kick.58:38
Corner taken by Gary O'Neil, Kevin Nolan concedes a free kick for a foul on Boaz Myhill. Boaz Myhill restarts play with the free kick.57:35
Abdoulaye Faye produces a left-footed shot from deep inside the area which goes wide of the left-hand post.56:57
Henri Lansbury takes a shot. Blocked by Peter Ramage.55:59
Outswinging corner taken right-footed by Gary O'Neil played to the near post, Jordon Mutch manages to make a clearance.51:50
Gary O'Neil fouled by Keith Fahey, the ref awards a free kick. Mark Noble takes the direct free kick.51:00
The offside flag is raised against James Tomkins. Boaz Myhill restarts play with the free kick.50:17
Corner taken by Gary O'Neil from the right by-line, clearance made by Guirane N'Daw.48:55
Corner taken by Mark Noble from the left by-line played to the near post, Jordon Mutch manages to make a clearance.48:01
Henri Lansbury gives away a free kick for an unfair challenge on Chris Burke. Boaz Myhill takes the free kick.47:39
Gary O'Neil takes a shot. Guirane N'Daw gets a block in.46:22
Effort from inside the area by Ricardo Vaz Te misses to the right of the goal.45:01
The match restarts for the second half.45:01 Substitution
Substitution Henri Lansbury joins the action as a substitute, replacing Nicky Maynard.45:00 +5:06 Half time
Half Time The ref blows to end the first period.45:00 +3:58 Goal scored
Goal! - Chris Burke - West Ham 1 - 3 Birmingham Chris Burke fires in a goal from just outside the penalty area to the top left corner of the goal. West Ham 1-3 Birmingham.45:00 +3:27
Corner taken by Jordon Mutch from the left by-line, Kevin Nolan manages to make a clearance.45:00 +2:22
James Tomkins provided the assist for the goal.45:00 +2:22 Goal scored
Goal! - Ricardo Vaz Te - West Ham 1 - 2 Birmingham Ricardo Vaz Te finds the back of the net with a headed goal from close range. West Ham 1-2 Birmingham.45:00 +2:09
Corner taken by Mark Noble,45:00 +1:41
Outswinging corner taken by James Tomkins, clearance by Chris Burke.44:07
Nicky Maynard takes a shot. Kevin Nolan takes a shot. Comfortable save by Boaz Myhill.38:20
Free kick awarded for an unfair challenge on Gary O'Neil by Keith Fahey. James Tomkins restarts play with the free kick.36:37
Strike on goal comes in from Gary O'Neil from the free kick.36:37 Booking
Booking The referee shows Guirane N'Daw a yellow card for unsporting behaviour.36:18
Unfair challenge on Kevin Nolan by Guirane N'Daw results in a free kick.35:56
Marlon King takes a shot. Blocked by Abdoulaye Faye.34:20
Free kick awarded for a foul by Danny Collins on Marlon King. Jordon Mutch crosses the ball in from the free kick.33:31 Substitution
Substitution Danny Collins is brought on as a substitute for George McCartney.30:32
The assistant referee signals for offside against Carlton Cole. Boaz Myhill takes the direct free kick.29:29
Assist by Keith Fahey.29:29 Goal scored
Goal! - Marlon King - West Ham 0 - 2 Birmingham Marlon King finds the net with a goal from close in to the bottom right corner of the goal. West Ham 0-2 Birmingham.26:47
Assist on the goal came from Marlon King.26:47 Goal scored
Goal! - Jordon Mutch - West Ham 0 - 1 Birmingham A goal is scored by Jordon Mutch from outside the area to the bottom left corner of the goal. West Ham 0-1 Birmingham.23:39
Keith Fahey takes a shot. Blocked by Winston Reid.21:17
Long range shot by Jordon Mutch goes wide right of the target.17:30
The referee blows for offside against Marlon King. Free kick taken by Mark Noble.15:14
The referee penalises Carlton Cole for handball. Boaz Myhill restarts play with the free kick.13:55
Corner taken by Jordon Mutch, Headed effort from deep inside the penalty area by Jordon Mutch misses to the right of the target.13:37
Chris Burke takes a shot. Save made by Robert Green.12:59
The offside flag is raised against Nicky Maynard. Direct free kick taken by Boaz Myhill.12:37
Guirane N'Daw concedes a free kick for a foul on Kevin Nolan. Kevin Nolan takes the free kick.11:44
Header by Ricardo Vaz Te from deep inside the penalty area misses to the left of the target.11:26
Outswinging corner taken right-footed by Gary O'Neil from the right by-line.9:09
Inswinging corner taken by Mark Noble from the left by-line played to the near post, clearance made by Peter Ramage.8:58
Ricardo Vaz Te takes a shot. Blocked by Steven Caldwell.3:49
Foul by David Murphy on Gary O'Neil, free kick awarded. Free kick taken by Mark Noble.1:11
The official flags Ricardo Vaz Te offside. Boaz Myhill restarts play with the free kick.0:00
The referee gets the game underway.
Live data and text provided by our data suppliers