Glenn Murray scored a second-half hat-trick for Crystal Palace as Cardiff City surrendered a two-goal lead in a thrilling game at Selhurst Park.
Aron Gunnarsson scored Cardiff's opener against the run of play and Don Cowie's volley extended their lead soon after.
Murray reduced the deficit from the spot on 52 minutes before equalising 10 minutes later.
And the striker completed his hat-trick and Palace's comeback with his second penalty of the game on 72 minutes.
Looking to extend their unbeaten run to four games, Palace's four changes included former Cardiff defender Darcy Blake.
Craig Bellamy returned to Cardiff's line-up, one of three changes to the side which had secured their first away win of the season at Millwall.
Palace were on top during the early stages of the game and Kagisho Dikgacoi's effort from distance was denied by a one-handed save from David Marshall.
Despite the home side's early chances it was Cardiff, very much against the run of play, who took the lead on 13 minutes.
The ball fell kindly to the advancing Gunnarsson, who after a fortunate deflection, slotted the ball past Julian Speroni for his first goal of the season.
Two minutes later, the visitors doubled their lead courtesy of another goal that came out of nothing.
The Eagles' defence failed to clear following Bellamy's shot from distance and Cowie capitalised with a fierce volley.
Cardiff were in total control and Bellamy should have added their third but the Wales striker rifled over the bar from nine yards.
At the back, Malky Mackay's side managed to nullify Palace's main threat, Wilfried Zaha, as they went into the break.
Palace emerged for the second half with purpose, though, and their early pressure was rewarded with a penalty six minutes after the restart.
Andrew Taylor was adjudged to have handballed Andre Moritz's free-kick and, from the spot, Murray made no mistake as he halved the deficit.
The goal gave the home side renewed hope and Marshall was forced to tip Murray's effort past the post before Blake headed over from the resulting corner.
But Murray was not to be denied on 62 minutes. A shot from Moritz deflected to Murray at the back post and the ex-Brighton striker squeezed a shot past Marshall from a tight angle.
Dougie Freedman's side were awarded their second penalty of the afternoon on 72 minutes following Heidar Helguson reckless challenge on Jonathan Parr.
Murray again scored from the spot to complete a remarkable comeback.
Crystal Palace boss Dougie Freedman:
"As manager it was the best comeback. I don't think we deserved to be two down. To show the character and energy we did, it was a correct result.
"If you were watching the game, you saw we didn't deserve to be down. We played with fantastic approach play, with crosses.
"In the second half, the shots were coming off and we were causing them a lot of problems."
Cardiff City manager Malky Mackay:
"I was disappointed today and delighted at Millwall. If we don't give two penalties away we would have sat top of the table tonight.
"I don't have any qualms with the penalty decisions. In the first half we scored two good goals and the third chance, nine times out of 10 Bellamy would have taken that.
"But we gifted them two penalties. The first one, one of our players raised his arm. With the other one Helguson made a rash challenge."
- 01 Speroni
- 27 Delaney
- 28 Ramage (Ward - 29' )
- 04 Parr
- 07 Bolasie (Moxey - 86' )
- 08 Dikgacoi
- 14 Blake
- 15 Jedinak
- 30 Moritz (Williams - 77' )
- 16 Zaha Booked
- 17 Murray
- 34 Price
- 02 Ward
- 21 Moxey
- 10 Garvan
- 20 Williams
- 09 Goodwillie
- 18 Wilbraham
- 01 Marshall
- 02 McNaughton Booked
- 03 Taylor
- 05 Hudson
- 12 Connolly
- 07 Whittingham
- 08 Cowie (Noone - 75' )
- 17 Gunnarsson Booked
- 14 Smith (Kim Bo-Kyung - 88' Booked )
- 22 Helguson Booked
- 39 Bellamy (Mason - 82' )
- 32 Lewis
- 06 Turner
- 04 Kiss
- 13 Kim Bo-Kyung
- 16 Noone
- 09 Velikonja
- 20 Mason
Live Text Commentary
Full Time The final whistle is blown by the referee.90:00 +4:08
Craig Noone has an effort at goal from outside the box which goes wide left of the goal.90:00 +1:06
Free kick taken by Mile Jedinak.90:00 +1:06 Booking
Booking Caution for Bo-Kyung Kim.90:00 +0:56
Unfair challenge on Jonathan Williams by Bo-Kyung Kim results in a free kick.87:37 Substitution
Substitution Bo-Kyung Kim on for Tommy Smith.87:37
Peter Whittingham takes a outswinging corner.86:16
Tommy Smith challenges Jonathan Parr unfairly and gives away a free kick. Jonathan Williams crosses the ball from the free kick right-footed from left wing, save by David Marshall.84:59
Mile Jedinak restarts play with the free kick.84:59 Substitution
Substitution Yannick Bolasie leaves the field to be replaced by Dean Moxey.84:59
Jonathan Williams fouled by Craig Noone, the ref awards a free kick.83:30
Peter Whittingham produces a left-footed shot from just outside the penalty box that misses to the left of the goal.82:15
Wilfried Zaha takes a shot. Aron Gunnarsson gets a block in.81:41
Mark Hudson fouled by Glenn Murray, the ref awards a free kick. David Marshall takes the indirect free kick.80:51
Indirect free kick taken by Julian Speroni.80:51 Substitution
Substitution Joe Mason joins the action as a substitute, replacing Craig Bellamy.80:51
Yannick Bolasie fouled by Tommy Smith, the ref awards a free kick.79:22
Kagisho Dikgacoi takes a shot.77:36
Free kick awarded for an unfair challenge on Craig Noone by Joel Ward. Free kick taken by Peter Whittingham.76:05 Substitution
Substitution Jonathan Williams is brought on as a substitute for Andre Moritz.
Substitution Don Cowie leaves the field to be replaced by Craig Noone.73:11
Yannick Bolasie gives away a free kick for an unfair challenge on Andrew Taylor. Peter Whittingham restarts play with the free kick.72:43
Aron Gunnarsson fouled by Glenn Murray, the ref awards a free kick. Free kick taken by David Marshall.71:17 Goal scored
Goal! - Glenn Murray - C Palace 3 - 2 Cardiff Penalty taken right-footed by Glenn Murray and scored. Crystal Palace 3-2 Cardiff.69:57 Booking
Booking Heidar Helguson booked.69:49
Penalty awarded for an unfair challenge on Jonathan Parr by Heidar Helguson.69:15
Inswinging corner taken from the left by-line by Yannick Bolasie, Kevin McNaughton manages to make a clearance.67:45
Yannick Bolasie produces a right-footed shot from just outside the box that goes wide right of the goal.65:32
Strike comes in from Mile Jedinak from the free kick.65:32 Booking
Booking Aron Gunnarsson goes into the book for unsporting behaviour.65:23
Free kick awarded for an unfair challenge on Wilfried Zaha by Aron Gunnarsson.64:05
The offside flag is raised against Glenn Murray. Indirect free kick taken by David Marshall.61:16 Goal scored
Goal! - Glenn Murray - C Palace 2 - 2 Cardiff Glenn Murray scores a goal from close in low into the middle of the goal. Crystal Palace 2-2 Cardiff.60:39
Effort on goal by Don Cowie from just inside the penalty area goes over the target.57:18
Glenn Murray takes a shot. Save made by David Marshall. Andre Moritz takes a inswinging corner to the near post, Darcy Blake produces a header from close range which goes wide of the left-hand post.55:18
Foul by Peter Whittingham on Andre Moritz, free kick awarded. Damien Delaney restarts play with the free kick.52:36
Peter Whittingham takes a inswinging corner from the right by-line played to the near post.51:54 Goal scored
Goal! - Glenn Murray - C Palace 1 - 2 Cardiff Glenn Murray scores a placed penalty. Crystal Palace 1-2 Cardiff.49:07
Free kick awarded for an unfair challenge on Glenn Murray by Mark Hudson. Andre Moritz shoots direct from the free kick, blocked by Andrew Taylor. Andrew Taylor is penalised for handball and concedes a .48:38
Glenn Murray fouled by Matthew Connolly, the ref awards a free kick. Indirect free kick taken by Mile Jedinak.48:05
Unfair challenge on Craig Bellamy by Andre Moritz results in a free kick. Mark Hudson restarts play with the free kick.47:28
The referee gives a free kick against Don Cowie for handball. Free kick taken by Joel Ward.46:23
Yannick Bolasie takes a inswinging corner from the left by-line to the near post, Peter Whittingham makes a clearance.45:49
Andre Moritz takes a inswinging corner from the right by-line played to the near post, clearance by Mark Hudson.45:01
The referee starts the second half.45:00 +4:11 Half time
Half Time The first half comes to an end.45:00 +1:34 Booking
Booking The referee books Wilfried Zaha for unsporting behaviour.45:00 +0:19
Inswinging corner taken right-footed by Yannick Bolasie from the left by-line, clearance made by Mark Hudson.44:06
Unfair challenge on Andre Moritz by Peter Whittingham results in a free kick. Julian Speroni restarts play with the free kick.43:21
Andrew Taylor fouled by Yannick Bolasie, the ref awards a free kick. Indirect free kick taken by David Marshall.41:33
The referee blows for offside against Heidar Helguson. Indirect free kick taken by Julian Speroni.40:39
Free kick awarded for a foul by Mile Jedinak on Heidar Helguson. Free kick taken by Peter Whittingham.39:31
Craig Bellamy handles the ball and concedes a free kick. Andre Moritz takes the indirect free kick.37:14
Corner taken left-footed by Andre Moritz, Kagisho Dikgacoi takes a shot. Clearance by Mark Hudson.36:43
Inswinging corner taken right-footed by Yannick Bolasie from the left by-line, clearance made by Peter Whittingham.34:28
Yannick Bolasie restarts play with the free kick.34:28 Booking
Booking Kevin McNaughton is cautioned by the ref for unsporting behaviour.33:58
Kevin McNaughton gives away a free kick for an unfair challenge on Wilfried Zaha.33:18
Centre by Wilfried Zaha, Close range headed effort by Kagisho Dikgacoi goes wide of the left-hand post.32:30
Craig Bellamy decides to take a short corner.29:31
Free kick awarded for an unfair challenge on Yannick Bolasie by Craig Bellamy. Free kick taken by Andre Moritz.28:22 Substitution
Substitution (Crystal Palace) makes a substitution, with Joel Ward coming on for Peter Ramage.24:27
Andre Moritz gives away a free kick for an unfair challenge on Peter Whittingham. Indirect free kick taken by Mark Hudson.23:34
Craig Bellamy takes a shot from close in clearing the crossbar.21:44
Shot from just outside the penalty area by Kagisho Dikgacoi misses to the left of the target.19:22
Free kick awarded for an unfair challenge on Andre Moritz by Peter Whittingham. Mile Jedinak has an effort direct from the free kick, save by David Marshall.19:10
Don Cowie gives away a free kick for an unfair challenge on Yannick Bolasie. Kagisho Dikgacoi takes the free kick.16:20
Glenn Murray challenges Aron Gunnarsson unfairly and gives away a free kick. David Marshall takes the indirect free kick.14:32 Goal scored
Goal! - Don Cowie - C Palace 0 - 2 Cardiff Don Cowie grabs a goal from close range to the bottom left corner of the goal. Crystal Palace 0-2 Cardiff.12:18 Goal scored
Goal! - Aron Gunnarsson - C Palace 0 - 1 Cardiff Aron Gunnarsson scores a goal from inside the area to the bottom left corner of the goal. Crystal Palace 0-1 Cardiff.10:09
Inswinging corner taken by Andre Moritz from the right by-line, Heidar Helguson manages to make a clearance.9:26
Yannick Bolasie decides to take a short corner.6:52
Kagisho Dikgacoi takes a shot. David Marshall makes a save. Short corner taken by Andre Moritz from the right by-line, Mark Hudson manages to make a clearance.5:49
Effort from outside the area by Mile Jedinak goes wide right of the goal.5:23
Andre Moritz takes a shot. Mark Hudson gets a block in.2:41
Yannick Bolasie is ruled offside. David Marshall takes the indirect free kick.0:53
Corner taken by Craig Bellamy, free kick awarded for a foul by Heidar Helguson on Peter Ramage. Julian Speroni takes the free kick.0:00
The ref blows the whistle to start the match.
Live data and text provided by our data suppliers