Bristol City substitute Brett Pitman salvaged a point for his side with a late double against Crystal Palace.
Pitman pulled one back on 77 minutes with a 25-yard free kick before adding a second deep into injury time after a long ball into the box.
Palace's Wilfried Zaha scored from 18 yards early on before City's Stephen Pearson hit the bar before the break.
Darren Ambrose got Palace's second from the spot with 21 minutes left after Liam Fontaine fouled Glenn Murray.
The result leaves City one place above the relegation zone, while mid-table Palace have now gone six games without a win.
Zaha's first goal since October and Ambrose's first since his stunning effort in the Carling Cup win over Manchester United at Old Trafford in November gave the visitors the upper hand but City pressed hard.
Yannick Bolasie, Chris Wood, Albert Adomah, Marvin Elliott and Pearson all went close and Palace goalkeeper Julian Speroni was frequently called into action.
Zaha was also denied by David James at the other end, while Jermaine Easter pulled a shot wide for the Eagles before Pitman, who came on for Bolasie on 70 minutes, rescued the point at the end.
Bristol City boss Derek McInnes: "Fontaine twice had his shirt pulled by Murray in the build-up [to the penalty].
"None of the officials noticed that and then the linesman flags for a foul by our player.
"After that the lads showed tremendous spirit to get a point. Brett Pitman is probably the best finisher we have. He has had to be patient in awaiting his opportunities and could do no more than he did tonight.
"Having been a player myself, I know how frustrating it can be to be left out. Brett has responded in the perfect manner."
Crystal Palace manager Dougie Freedman: "I thought the lads were outstanding. We were the better side and played some great football to go two goals up.
"It's not like us to concede as we did in the closing stages, but this is a difficult place to come and I cannot fault the players.
"Wilfried Zaha is an exciting young player who works hard at his game. He scored a quality goal, but doesn't always come up with an end product. That will improve as he gains more experience.
"I thought we looked dangerous all through the game and might have had more goals. The result was a disappointment, but otherwise I couldn't be happier."
- 01 James
- 04 Fontaine Booked
- 26 Foster Booked
- 28 McManus Booked
- 36 McGivern Booked
- 07 Elliott
- 14 Skuse Booked (Kilkenny - 53' Booked )
- 17 Bolasie (Pitman - 70' Booked )
- 27 Adomah
- 37 Pearson
- 39 Wood
- 22 Gerken
- 18 Wilson
- 08 Kilkenny
- 09 Stead
- 34 Pitman
- 01 Speroni
- 02 Clyne
- 04 Parr
- 05 McCarthy
- 06 Gardner Booked
- 07 Ambrose (McShane - 88' )
- 08 Dikgacoi Booked
- 15 Jedinak
- 16 Zaha
- 19 Easter (Murray - 63' )
- 35 C Martin (Garvan - 78' )
- 34 Price
- 30 McShane
- 10 Garvan
- 28 O'Keefe
- 17 Murray
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +4:14
Inswinging corner taken by Brett Pitman.90:00 +2:43 Goal scored
Goal! - Brett Pitman - Bristol C 2 - 2 C Palace Brett Pitman fires in a goal from just inside the penalty area to the bottom left corner of the goal. Bristol City 2-2 Crystal Palace.90:00 +0:49
Shot from close in by Wilfried Zaha misses to the left of the target.89:53
Stephen Pearson takes the inswinging corner, clearance by Patrick McCarthy.89:32
The ball is delivered by Richard Foster, Chris Wood takes a shot. Julian Speroni makes a save.87:44 Substitution
Substitution Paul McShane comes on in place of Darren Ambrose.87:31
Effort on goal by Albert Adomah from outside the box goes harmlessly over the bar.86:44
Wilfried Zaha has an effort at goal from just inside the box that misses to the right of the goal.86:05
Brett Pitman fouled by Mile Jedinak, the ref awards a free kick. Neil Kilkenny restarts play with the free kick.84:58
Anthony Gardner takes the free kick.84:58 Booking
Booking Brett Pitman booked.84:40
Foul by Brett Pitman on Mile Jedinak, free kick awarded.84:26
The ball is sent over by Nathaniel Clyne, clearance by Liam Fontaine.83:32
Richard Foster sends in a cross.82:06
Corner from the left by-line taken by Darren Ambrose, Chris Wood manages to make a clearance.81:41 Booking
Booking Stephen McManus is given a yellow card.81:15
Wilfried Zaha takes a shot. Blocked by Richard Foster.77:32
Richard Foster takes the free kick.77:32 Substitution
Substitution Owen Garvan on for Chris Martin.
Neil Kilkenny fouled by Chris Martin, the ref awards a free kick.76:02 Goal scored
Goal! - Brett Pitman - Bristol C 1 - 2 C Palace Free kick scored by Brett Pitman from outside the area to the bottom right corner of the goal. Bristol City 1-2 Crystal Palace.75:31 Booking
Booking Kagisho Dikgacoi goes into the referee's book for unsporting behaviour.74:59
Unfair challenge on Chris Wood by Anthony Gardner results in a free kick.74:28 Booking
Booking Anthony Gardner shown a yellow card.73:47
Free kick awarded for an unfair challenge on Stephen McManus by Chris Martin. Ryan McGivern restarts play with the free kick.72:29
The referee blows for offside. Free kick taken by Julian Speroni.69:44 Substitution
Substitution (Bristol City) makes a substitution, with Brett Pitman coming on for Yannick Bolasie.69:04 Booking
Booking Liam Fontaine is cautioned.68:52 Goal scored
Goal! - Darren Ambrose - Bristol C 0 - 2 C Palace Penalty taken right-footed by Darren Ambrose and scored. Bristol City 0-2 Crystal Palace.68:02 Booking
Booking Neil Kilkenny is shown a yellow card.66:57
The assist for the goal came from Glenn Murray.66:44
Penalty awarded for a foul by Liam Fontaine on Glenn Murray.65:48
Inswinging corner taken right-footed by Darren Ambrose played to the near post, Patrick McCarthy produces a right-footed shot from inside the area that clears the bar.65:32
Wilfried Zaha takes a shot. Save by David James.64:00
Richard Foster produces a cross, clearance by Kagisho Dikgacoi.62:11 Substitution
Substitution Jermaine Easter goes off and Glenn Murray comes on.61:45
Chris Martin takes a shot. Save by Julian Speroni.58:31
Shot by Stephen Pearson from outside the box goes high over the target.58:08
Inswinging corner taken right-footed by Yannick Bolasie from the left by-line to the near post, clearance made by Nathaniel Clyne.57:59
Stephen Pearson crosses the ball, clearance by Patrick McCarthy.56:54
Chris Wood challenges Patrick McCarthy unfairly and gives away a free kick. Patrick McCarthy takes the free kick.55:55
Jermaine Easter gives away a free kick for an unfair challenge on Liam Fontaine. David James takes the indirect free kick.55:09
Shot from just outside the box by Yannick Bolasie misses to the right of the goal.52:40 Substitution
Substitution Cole Skuse goes off and Neil Kilkenny comes on.48:20
Albert Adomah takes a shot. Julian Speroni makes a save.47:58
Inswinging corner taken left-footed by Yannick Bolasie from the left by-line, Anthony Gardner makes a clearance.47:31
Corner taken by Stephen Pearson from the right by-line, clearance made by Nathaniel Clyne.47:21
A cross is delivered by Richard Foster, Kagisho Dikgacoi makes a clearance.46:52
Free kick awarded for an unfair challenge on Albert Adomah by Kagisho Dikgacoi. Free kick taken by Stephen Pearson.46:01
Centre by Jonathan Parr.45:16
Shot by Stephen Pearson from just outside the area goes over the net.45:01
The referee blows his whistle to start the second half.45:00 +2:16 Half time
Half Time The players leave the pitch at half time.45:00 +1:04
Inswinging corner taken by Yannick Bolasie from the left by-line played to the near post, clearance made by Darren Ambrose.45:00 +0:53
The ball is sent over by Richard Foster, Nathaniel Clyne manages to make a clearance.44:38
Jonathan Parr is ruled offside. David James takes the free kick.43:26
Yannick Bolasie takes a shot. Blocked by Anthony Gardner.41:37
Direct effort from the free kick comes in from Darren Ambrose.41:37 Booking
Booking Caution for Cole Skuse.41:17
Free kick awarded for a foul by Cole Skuse on Chris Martin.39:53
Cole Skuse gives away a free kick for an unfair challenge on Wilfried Zaha. Free kick crossed right-footed by Darren Ambrose, clearance by Yannick Bolasie.39:38
Free kick awarded for an unfair challenge on Stephen McManus by Jermaine Easter. Indirect free kick taken by Stephen McManus.38:01
Ryan McGivern delivers the ball.36:45
Unfair challenge on Chris Martin by Cole Skuse results in a free kick. Indirect free kick taken by Julian Speroni.35:00
Stephen Pearson takes a shot.34:13
Marvin Elliott takes a shot. Save made by Julian Speroni.32:33
Effort from the edge of the penalty box by Jermaine Easter goes wide of the right-hand upright.29:31
Patrick McCarthy challenges Chris Wood unfairly and gives away a free kick. Strike comes in from Albert Adomah from the free kick.28:07
Shot from just outside the box by Darren Ambrose goes over the bar.27:40
The ball is swung over by Albert Adomah, clearance made by Anthony Gardner.25:23
Yannick Bolasie concedes a free kick for a foul on Wilfried Zaha. Nathaniel Clyne restarts play with the free kick.25:01
Chris Wood takes a shot. Patrick McCarthy gets a block in.23:18
Stephen McManus concedes a free kick for a foul on Chris Martin. Indirect free kick taken by Mile Jedinak.21:34
Cole Skuse fouled by Chris Martin, the ref awards a free kick. Cole Skuse takes the indirect free kick.17:39
Corner taken right-footed by Darren Ambrose from the right by-line, Mile Jedinak has a header from close in and clears the crossbar.17:17
Darren Ambrose takes a short corner.16:19
Free kick crossed right-footed by Darren Ambrose, clearance by Richard Foster.16:19 Booking
Booking Ryan McGivern is shown a yellow card.16:02
Ryan McGivern gives away a free kick for an unfair challenge on Nathaniel Clyne.15:09
Inswinging corner taken by Albert Adomah from the right by-line, Nathaniel Clyne makes a clearance.14:48
Albert Adomah produces a cross, Chris Wood takes a shot. Save by Julian Speroni.13:13
Assist on the goal came from Kagisho Dikgacoi.13:13 Goal scored
Goal! - Wilfried Zaha - Bristol C 0 - 1 C Palace Wilfried Zaha finds the back of the net with a goal from just inside the area to the top right corner of the goal. Bristol City 0-1 Crystal Palace.11:38
Free kick crossed right-footed by Darren Ambrose from left channel, clearance made by Liam Fontaine.11:38 Booking
Booking Richard Foster is booked.11:24
Liam Fontaine concedes a free kick for a foul on Jermaine Easter.10:12
The referee blows for offside against Jermaine Easter. Indirect free kick taken by Liam Fontaine.8:40
Kagisho Dikgacoi crosses the ball.7:24
Albert Adomah crosses the ball, Yannick Bolasie has a headed effort at goal from just inside the box that misses to the right of the goal.6:18
Yannick Bolasie has an effort at goal from 35 yards and went wide left of the goal.5:32
Kagisho Dikgacoi decides to take the corner short.5:20
Wilfried Zaha sends in a cross, Ryan McGivern gets a block in.4:15
Wilfried Zaha takes a shot. Save by David James.1:57
Inswinging corner taken right-footed by Darren Ambrose from the left by-line to the near post, clearance made by Chris Wood.0:50
Julian Speroni fouled by Albert Adomah, the ref awards a free kick. Julian Speroni restarts play with the free kick.0:25
The assistant referee signals for offside against Jermaine Easter. Liam Fontaine takes the indirect free kick.0:00
The match begins.
Live data and text provided by our data suppliers