Bristol City substitute Brett Pitman rescued a point for his team with an injury-time penalty after Julian Speroni brought down Danny Rose.
Neil Danns had given struggling Crystal Palace the lead with a free-kick after he had been fouled by Kalifa Cisse.
Scott Scanell missed a good opening and Robins goalkeeper David James denied Danns as Palace went close to a second.
But Danny Haynes hit the post and Speroni denied Albert Adomah for City before Pitman struck from the spot.
The equaliser continues a fine run of form for the former Bournemouth striker, who has now scored six in his last six games.
It was Palace's first game since 18 December and their failure to hold extended their winless streak to four games.
The result leaves Palace in the bottom three of the Championship, two points from safety, while City are four points clear of the drop zone.
Live text and stats
Tuesday, 28 December 2010
Pitman (pen) 90+5
36 Caulker yellow card
20 Campbell-Ryce (Pitman 58)
21 Cisse yellow card
11 Haynes (Clarkson 76)
30 Stead (Rose 76)
01 Speroni yellow card
03 Wright yellow card
04 Davis yellow card (Barrett 46)
19 Bennett yellow card
12 Andrew yellow card
14 Scannell (Obika 90+1)
32 Counago (N'Diaye 88)
Ref: TierneyAtt: 15,760
Attempts on target
Attempts off target
90:00+6:03 The referee signals the end of the game.
90:00+5:27 Shot from close in by Neil Danns misses to the left of the target.
90:00+4:39 Julian Speroni gives away a Penalty for an unfair challenge on Danny Rose.
90:00+4:39 GOAL - Brett Pitman:Bristol City 1 - 1 Crystal Palace Penalty scored by Brett Pitman. Bristol City 1-1 Crystal Palace.
90:00+3:43 Booking The referee shows Julian Speroni a yellow card for unsporting behaviour.
90:00+0:01 Substitution Sean Scannell goes off and Jonathan Obika comes on.
89:29 Corner taken by Lee Johnson from the left by-line to the near post.
87:09 Substitution Alassane N'Diaye is brought on as a substitute for Pablo Counago.
85:25 Corner from the right by-line taken by Cole Skuse, clearance made by Calvin Andrew.
85:25 Booking Julian Bennett is shown a yellow card.
84:27 Outswinging corner taken from the right by-line by Cole Skuse, clearance by Patrick McCarthy.
84:05 Albert Adomah takes a shot. Save by Julian Speroni.
83:21 A cross is delivered by Wilfried Zaha.
81:47 The offside flag is raised against Kalifa Cisse. Julian Speroni takes the free kick.
81:35 Corner taken right-footed by Cole Skuse, Julian Bennett manages to make a clearance.
81:25 Centre by Cole Skuse, Patrick McCarthy makes a clearance.
77:50 Outswinging corner taken by Lee Johnson from the right by-line played to the near post, clearance by David Wright.
77:41 Danny Rose takes a shot. Blocked by Patrick McCarthy.
77:11 Neil Danns takes a shot. Steven Caulker gets a block in.
75:59 Substitution Danny Rose comes on in place of Jonathan Stead.
75:40 Substitution David Clarkson on for Danny Haynes.
71:50 Albert Adomah fouled by Julian Bennett, the ref awards a free kick. Lee Johnson takes the free kick.
69:52 Sean Scannell decides to take a short corner.
69:40 Wilfried Zaha takes a shot. Blocked by Kalifa Cisse.
69:01 David Wright challenges Lee Johnson unfairly and gives away a free kick. Lee Johnson restarts play with the free kick.
67:03 Neil Danns gives away a free kick for an unfair challenge on Marvin Elliott. David James takes the direct free kick.
67:03 Booking Calvin Andrew is shown a yellow card for unsporting behaviour.
66:53 Booking Steven Caulker is shown a yellow card for unsporting behaviour.
65:27 Free kick awarded for an unfair challenge on Neil Danns by Kalifa Cisse. Direct free kick taken by Neil Danns.
65:27 Booking Kalifa Cisse is booked.
64:05 Sean Scannell takes a outswinging corner to the near post.
62:45 Pablo Counago produces a right-footed shot from the edge of the box and misses to the right of the goal.
60:55 The referee blows for offside against Danny Haynes. Patrick McCarthy takes the direct free kick.
60:31 Wilfried Zaha takes a shot. Blocked by Cole Skuse.
59:45 Inswinging corner taken right-footed by Lee Johnson from the left by-line.
Correction - 57:44 Substitution Brett Pitman joins the action as a substitute, replacing Jamal Campbell-Ryce.
57:44 Substitution Jamal Campbell-Ryce goes off and Brett Pitman comes on.
51:04 Lewin Nyatanga challenges Wilfried Zaha unfairly and gives away a free kick. Nathaniel Clyne takes the free kick.
47:17 The referee blows for offside. Free kick taken by David James.
45:57 Free kick awarded for an unfair challenge on Patrick McCarthy by Jonathan Stead. Adam Barrett restarts play with the free
45:30 Albert Adomah concedes a free kick for a foul on Calvin Andrew. Free kick taken by Adam Barrett.
45:01 The referee starts the second half.
45:01 Substitution Adam Barrett joins the action as a substitute, replacing Claude Davis.
45:00+2:08 It is the end of the first-half.
45:00+1:01 Lee Johnson has an effort at goal from outside the area missing to the wide right of the target.
44:44 Steven Caulker gives away a free kick for an unfair challenge on Wilfried Zaha. Nathaniel Clyne takes the direct free kick.
44:12 Albert Adomah produces a cross, clearance by Claude Davis.
41:57 Albert Adomah has an effort at goal from the edge of the area that misses to the right of the target.
38:17 Foul by Julian Bennett on Albert Adomah, free kick awarded. Lee Johnson restarts play with the free kick.
37:05 Booking David Wright receives a caution.
36:44 Lee Johnson has an effort at goal from the edge of the box that misses to the right of the target.
34:38 Foul by David Wright on Albert Adomah, free kick awarded. The free kick is swung in right-footed by Lee Johnson.
33:37 Wilfried Zaha fouled by Lewin Nyatanga, the ref awards a free kick. Free kick taken by Julian Speroni.
32:27 Corner taken short by Sean Scannell.
32:10 Neil Danns takes a shot. David James makes a save.
31:24 Sean Scannell takes a shot. Blocked by Steven Caulker.
27:03 The referee penalises Danny Haynes for handball. Julian Speroni takes the free kick.
26:46 Jonathan Stead delivers the ball, Patrick McCarthy makes a clearance.
25:21 Wilfried Zaha concedes a free kick for a foul on Steven Caulker. Steven Caulker takes the free kick.
24:22 Albert Adomah delivers the ball, Claude Davis manages to make a clearance.
23:22 The assistant referee flags for offside against Danny Haynes. Indirect free kick taken by Julian Speroni.
22:49 Marvin Elliott takes a shot. Patrick McCarthy gets a block in.
22:32 Foul by Neil Danns on Jamal Campbell-Ryce, free kick awarded. Direct free kick taken by Marvin Elliott.
19:16 Effort from long range by Neil Danns goes wide right of the target.
15:22 Free kick awarded for a foul by Claude Davis on Albert Adomah. Free kick taken by Lee Johnson, Neil Danns has an effort at
goal from outside the penalty box missing to the wide right of the goal.
15:22 Booking The referee books Claude Davis for unsporting behaviour.
14:09 Neil Danns handles the ball and concedes a free kick. Free kick taken by David James.
12:57 The offside flag is raised against Danny Haynes. Free kick taken by Patrick McCarthy.
9:42 Inswinging corner taken by Sean Scannell from the left by-line played to the near post, Jonathan Stead makes a clearance.
9:18 Calvin Andrew fouled by Kalifa Cisse, the ref awards a free kick. Free kick taken by Sean Scannell.
7:46 Albert Adomah produces a cross.
6:36 Handball by Jonathan Stead. Free kick taken by Julian Speroni.
5:17 Albert Adomah has an effort at goal from just inside the box that misses to the left of the target.
3:14 Danny Haynes produces a header from deep inside the area and strikes the post.
1:45 Kalifa Cisse gives away a free kick for an unfair challenge on Neil Danns.
1:45 GOAL - Neil Danns:Bristol City 0 - 1 Crystal Palace Neil Danns scores a goal from outside the penalty box to the top right corner of the goal. Bristol City 0-1 Crystal Palace.
0:00 The referee gets the game started.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.