Cardiff City went five points clear at the top of the Championship after coming from behind to beat promotion rivals Crystal Palace.
Australian international Mile Jedinak put the visitors in front after four minutes, before Craig Noone equalised for the hosts just before half-time.
Substitute Aron Gunnarsson headed home the winner with 17 minutes remaining.
The Welsh side's victory proved even sweeter with news that second-placed Hull only drew at home with Leicester.
It could prove to be a crucial victory for Cardiff, who showed plenty of resolve after going behind.
Eagles captain Jedinak stunned the majority of the sell-out crowd by nodding home his second goal of the season, and things could have gone from bad to worse for the home fans when Wilfried Zaha cut inside and rattled the crossbar.
But the hosts drew level when Craig Bellamy got clear down the left and cleverly pulled the ball back for Noone to gleefully hammer home.
Gunnarsson and Whittingham both went close as the Championship leaders began to dominate after the break, and the Icelandic midfielder got the winner when he converted Bellamy's corner via the underside of the bar.
Cardiff's Peter Whittingham could have doubled City's lead but saw his free-kick tipped onto the bar.
Cardiff manager Malky Mackay:
"It took until the half an hour mark for us to really get into the game and get on the front foot. From then on in I thought we were excellent.
"They got the message at half-time when we had a chat. I asked them their thoughts on where they thought their level of performance could go and they got there.
"They know if they work hard and step on like we did in the second half then we have footballers who can open teams up.
"It is about patience and doing the correct things and that is what they did."
Crystal Palace manager Ian Holloway:
"We started well and ended terribly. I thought we stopped creating chances and in these games you can't do that and you have to keep going. It was as simple as that.
"You know with this crowd like it is Cardiff are going to come back and in the end I am bitterly disappointed in the last 15 minutes because if any side looked like they were going to score a goal it was Cardiff.
"After they scored I don't think my team did what they needed to do, in fact they did worse and not better.
"There was a lot about us that I was delighted with but I just didn't like the way we ended the game. We have got to look at that part of ourselves because that could be crucial come the end of the season."
Sorry, we were unable to load match stats, please try again.
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +2:38
Rudy Gestede takes a shot from just inside the penalty box which clears the crossbar.90:00 +0:43 Booking
Booking Joe Mason is cautioned.89:52
Foul by Wilfried Zaha on Craig Conway, free kick awarded. David Marshall restarts play with the free kick.89:07
Unfair challenge on Glenn Murray by Mark Hudson results in a free kick. The free kick is swung in left-footed by Owen Garvan.86:27 Substitution
Substitution Jermaine Easter on for Jonathan Parr.84:08
Daniel Gabbidon has an effort at goal from long range that misses to the right of the target.83:30
Corner taken by Owen Garvan played to the near post, Rudy Gestede makes a clearance.82:37
Unfair challenge on Kagisho Dikgacoi by Rudy Gestede results in a free kick. The free kick is delivered left-footed by Owen Garvan from right channel, clearance made by Peter Whittingham.81:45 Booking
Booking Kagisho Dikgacoi receives a yellow card for dissent.81:19
Joe Mason is ruled offside. Julian Speroni takes the free kick.79:36
Aron Gunnarsson fouled by Andre Moritz, the ref awards a free kick. Direct free kick taken by David Marshall.77:33
Unfair challenge on Craig Conway by Dean Moxey results in a free kick. Shot comes in from Peter Whittingham from the free kick.75:22 Substitution
Substitution Joe Mason replaces Craig Noone.75:22 Booking
Booking The referee books Jonathan Parr for unsporting behaviour.75:04
Jonathan Parr concedes a free kick for a foul on Craig Noone. Direct free kick taken by Andrew Taylor.73:54
Foul by Kevin McNaughton on Kagisho Dikgacoi, free kick awarded. The ball is crossed by Owen Garvan, Dean Moxey takes a shot. Peter Whittingham gets a block in.73:25 Substitution
Substitution Andre Moritz on for Yannick Bolasie.72:35
Assist on the goal came from Craig Bellamy.72:35 Goal scored
Goal! - Aron Gunnarsson - Cardiff 2 - 1 C Palace Aron Gunnarsson finds the back of the net with a headed goal from inside the six-yard box. Cardiff 2-1 Crystal Palace.
Craig Bellamy decides to take the corner short,70:32
Free kick awarded for an unfair challenge on Craig Conway by Kagisho Dikgacoi. Cross/shot by Peter Whittingham.69:58
Yannick Bolasie is ruled offside. Peter Whittingham takes the free kick.68:12
Free kick awarded for a foul by Mile Jedinak on Craig Noone. Peter Whittingham produces a cross, Headed effort from inside the area by Aron Gunnarsson misses to the right of the target.67:11
Craig Bellamy challenges Mile Jedinak unfairly and gives away a free kick. Julian Speroni takes the free kick.66:10
Glenn Murray is ruled offside. Free kick taken by David Marshall.65:33
Yannick Bolasie has an effort at goal from deep inside the area missing to the right of the target.63:37
Craig Noone fouled by Mile Jedinak, the ref awards a free kick. The free kick is delivered right-footed by Craig Bellamy from left channel, Dean Moxey makes a clearance.62:57
Owen Garvan decides to take a short corner.61:38
Craig Bellamy is ruled offside. Direct free kick taken by Julian Speroni.61:23
Aron Gunnarsson fouled by Mile Jedinak, the ref awards a free kick. Peter Whittingham restarts play with the free kick.59:57 Booking
Booking Craig Noone is booked.59:42
Yannick Bolasie fouled by Craig Noone, the ref awards a free kick. Direct free kick taken by Daniel Gabbidon.59:26
Short corner worked by Craig Conway.58:38
Free kick awarded for a foul by Owen Garvan on Craig Conway. The ball is swung over by Peter Whittingham, Craig Bellamy takes a shot. Julian Speroni makes a save.57:09
Shot by Owen Garvan from deep inside the penalty area misses wide to the left of the target.56:23 Substitution
Substitution Heidar Helguson leaves the field to be replaced by Rudy Gestede.54:23
Foul by Heidar Helguson on Mile Jedinak, free kick awarded. Julian Speroni takes the direct free kick.53:57
Glenn Murray gives away a free kick for an unfair challenge on Mark Hudson. David Marshall restarts play with the free kick.53:19
Craig Bellamy is caught offside. Julian Speroni takes the direct free kick.45:36
Corner taken by Yannick Bolasie, Daniel Gabbidon has a headed effort at goal from close in which goes wide left of the target.45:01
The second half has started.45:01 Substitution
Substitution Aron Gunnarsson on for Jordon Mutch.45:00 +2:21 Half time
Half Time The referee calls an end to the first half.45:00 +1:36
Unfair challenge on Yannick Bolasie by Craig Noone results in a free kick. Strike on goal comes in from Mile Jedinak from the free kick, David Marshall makes a save.45:00 +0:51
Glenn Murray produces a right-footed shot from inside the area that clears the bar.43:30
Assist on the goal came from Craig Bellamy.43:30 Goal scored
Goal! - Craig Noone - Cardiff 1 - 1 C Palace Craig Noone fires in a goal from inside the penalty area high into the middle of the goal. Cardiff 1-1 Crystal Palace.42:39
Shot from outside the box by Jordon Mutch goes wide right of the target.40:37 Booking
Booking Yannick Bolasie booked for dissent.39:53
Wilfried Zaha concedes a free kick for a foul on Craig Noone. David Marshall restarts play with the free kick.38:46
Craig Bellamy takes a shot. Peter Ramage gets a block in.38:31
Free kick awarded for a foul by Jonathan Parr on Craig Conway. Craig Conway takes the direct free kick.34:26
Foul by Jordon Mutch on Glenn Murray, free kick awarded. Julian Speroni takes the free kick.33:42
Free kick crossed left-footed by Peter Whittingham, Glenn Murray manages to make a clearance.33:42 Booking
Booking The referee cautions Wilfried Zaha for unsporting behaviour.33:20
Foul by Wilfried Zaha on Craig Noone, free kick awarded.32:37
The referee blows for offside against Craig Bellamy. Direct free kick taken by Peter Ramage.31:45
Mark Hudson concedes a free kick for a foul on Kagisho Dikgacoi. Direct free kick taken by Dean Moxey.30:01
Unfair challenge on Kevin McNaughton by Wilfried Zaha results in a free kick. David Marshall restarts play with the free kick.28:37
The offside flag is raised against Mark Hudson. Free kick taken by Julian Speroni.27:49
Unfair challenge on Heidar Helguson by Mile Jedinak results in a free kick. Peter Whittingham restarts play with the free kick.26:44
The ball is sent over by Craig Noone.25:56
Kagisho Dikgacoi concedes a free kick for a foul on Andrew Taylor. David Marshall takes the direct free kick.24:26
Corner taken by Craig Bellamy, clearance by Glenn Murray.24:13
Craig Bellamy takes a shot. Julian Speroni makes a save.22:32
Handball decision goes against Jordon Mutch. Owen Garvan crosses the ball in from the free kick, save made by David Marshall.21:51
Owen Garvan takes a inswinging corner to the near post.21:35
Yannick Bolasie takes a shot. David Marshall makes a save.21:19
Shot by Wilfried Zaha.19:48
Free kick awarded for an unfair challenge on Heidar Helguson by Mile Jedinak. Peter Whittingham takes the free kick. Mile Jedinak concedes a free kick for a foul on Peter Whittingham. Peter Whittingham takes the free kick, Heidar Helguson takes a shot. Blocked by Daniel Gabbidon.19:12
Foul by Kagisho Dikgacoi on Kevin McNaughton, free kick awarded. David Marshall takes the free kick.18:22
Mark Hudson gives away a free kick for an unfair challenge on Glenn Murray. The free kick is swung in left-footed by Owen Garvan, Mark Hudson manages to make a clearance.16:32
Glenn Murray challenges Mark Hudson unfairly and gives away a free kick. Free kick taken by David Marshall.15:58
Craig Noone has an effort at goal from just inside the box that misses to the right of the goal.15:29
Craig Conway fouled by Mile Jedinak, the ref awards a free kick. Free kick taken by Peter Whittingham.13:11
The assistant referee flags for offside against Craig Bellamy. Free kick taken by Peter Ramage.10:08
Foul by Mile Jedinak on Craig Bellamy, free kick awarded. Free kick taken by David Marshall.9:15
Owen Garvan crosses the ball in from the free kick, clearance by Ben Turner.9:15 Booking
Booking Booking for Mark Hudson.9:01
Foul by Mark Hudson on Wilfried Zaha, free kick awarded.8:15
Dean Moxey challenges Craig Conway unfairly and gives away a free kick. Free kick taken by Mark Hudson.5:58
Yannick Bolasie fouled by Craig Noone, the ref awards a free kick. Owen Garvan takes the direct free kick.5:30
Free kick awarded for a foul by Glenn Murray on Mark Hudson. Free kick taken by David Marshall.3:03
The assist for the goal came from Owen Garvan.3:03 Goal scored
Goal! - Mile Jedinak - Cardiff 0 - 1 C Palace Mile Jedinak fires in a goal from close in to the bottom right corner of the goal. Cardiff 0-1 Crystal Palace.2:33
Inswinging corner taken from the right by-line by Owen Garvan,0:00
The match gets underway.
Live data and text provided by our data suppliers