Manchester City’s hopes of retaining their title suffered another huge blow with defeat at Selhurst Park.
Glenn Murray put Crystal Palace ahead with a tap-in from close range before Jason Puncheon fired in a brilliant free-kick from the edge of the box.
Yaya Toure’s fierce strike pulled a goal back for fourth-placed City but Palace held on to move up to 11th.
City are nine points behind Chelsea and also below Arsenal and Manchester United, who they play on Sunday.
And Manuel Pellegrini’s side, who have played a game more than Chelsea, have now lost their past four away matches
Having slipped to fourth after wins for Arsenal and derby rivals United on Saturday, City were under pressure to come up with a victory of their own.
But they were almost caught cold inside 60 seconds when Martin Kelly picked out Wilfried Zaha with a low cross, but the winger blasted over.
City, who had not won in their four previous visits to London, responded well, dominating possession and pinning Palace back to the edge of their own box.
But they could not find a way through, with Palace keeper Julian Speroni twice making brilliant saves to deny David Silva, while Sergio Aguero hit the post from just outside the box.
And the home side stunned the champions on 34 minutes when they took the lead.
Joe Ledley flicked the ball on for Scott Dann, who was denied by Joe Hart only for Murray to turn in the loose ball for his fifth goal in five games.
It got worse early in the second half when Fernandinho brought down Murray on the edge of the box with a rash challenge, and Puncheon curled a precise free-kick past Hart.
Pellegrini was short of attacking options on the bench, with January signing Wilfried Bony unable to travel after injuring an ankle in training.
But City continued to press and felt they should have had a penalty when Fernandinho’s low shot bounced up onto Murray’s hand.
Toure was the man to make the breakthrough for City, lashing home a loose ball from 15 yards with 12 minutes remaining.
The Ivorian almost snatched an equaliser with a deflected shot that looked like it was going to loop over Speroni, but the Argentine scrambled back to punch clear.