Match ends, Crystal Palace 2, Manchester City 1.
- City lose fourth successive away game
- Champions now fourth in Premier League
- City nine points behind leaders Chelsea
- Palace up to 11th in the table
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 victories for Arsenal and derby rivals United on Saturday, City were under pressure to come up with a win 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.
The Brazilian was then denied by a goal-line clearance from James McArthur.
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.
Palace held on for their third victory in succession to continue their improvement under Alan Pardew.
But City go into Sunday's derby at Old Trafford having won just 18 points from their past 12 games - eight fewer than their fierce rivals.
Read more on this:
- 27DelaneyBooked at 40mins
- 11ZahaSubstituted forGayleat 88'minutes
- 42PuncheonBooked at 57mins
- 7BolasieSubstituted forSouaréat 84'minutes
- 17MurraySubstituted forSanogoat 83'minutes
- 26DemichelisBooked at 68mins
- 15NavasSubstituted forNasriat 77'minutes
- 42Y Touré
- 25FernandinhoSubstituted forMilnerat 88'minutes
- 10DzekoSubstituted forLampardat 66'minutes
- Michael Oliver
- Shots on Target
Second Half ends, Crystal Palace 2, Manchester City 1.
Yaya Touré (Manchester City) wins a free kick in the defensive half.
Foul by Yaya Sanogo (Crystal Palace).
Substitution, Crystal Palace. Dwight Gayle replaces Wilfried Zaha.
Substitution, Manchester City. James Milner replaces Fernandinho.
Attempt missed. Yaya Touré (Manchester City) left footed shot from outside the box is high and wide to the left. Assisted by Samir Nasri following a corner.
Corner, Manchester City. Conceded by Julian Speroni.
Attempt saved. Yaya Touré (Manchester City) left footed shot from the left side of the box is saved in the top right corner. Assisted by David Silva.
Corner, Manchester City. Conceded by Damien Delaney.
Attempt blocked. Samir Nasri (Manchester City) right footed shot from the centre of the box is blocked. Assisted by Frank Lampard.
Substitution, Crystal Palace. Pape Souaré replaces Yannick Bolasie.
Substitution, Crystal Palace. Yaya Sanogo replaces Glenn Murray.
Offside, Crystal Palace. Glenn Murray tries a through ball, but Yannick Bolasie is caught offside.
Hand ball by Sergio Agüero (Manchester City).
Corner, Manchester City. Conceded by Martin Kelly.
Attempt blocked. Samir Nasri (Manchester City) right footed shot from outside the box is blocked. Assisted by David Silva.
Goal! Crystal Palace 2, Manchester City 1. Yaya Touré (Manchester City) left footed shot from outside the box to the bottom left corner.
Substitution, Manchester City. Samir Nasri replaces Jesús Navas.
Foul by Vincent Kompany (Manchester City).