Crystal Palace left Manchester City's hopes of retaining their Premier League crown in tatters after a 2-1 win at Selhurst Park to leave Manuel Pellegrini's side trailing a distant fourth in the title race.
Impressive Palace defended resolutely to withstand early City pressure before taking the lead through Glenn Murray after 34 minutes.
Three minutes into the second half, Fernandinho brought down the outstanding Murray 20 metres from goal and Jason Puncheon swept his curling free kick over the wall and past Hart into the corner of the goal.
Yaya Toure gave City some hope with a thunderous drive after 78 minutes but although Palace dealt his team what could be a fatal blow to their title hopes, Pellegrini was not conceding the race was over yet.
The defeat kept City nine points behind leaders Chelsea and seemingly now in a battle to finish above Arsenal and Manchester United.
Chelsea, who have eight matches to play, have 70 points, followed by Arsenal on 63, Manchester United on 62 and City on 61. That trio all have seven matches remaining.
19 Diego Costa (Chelsea)
Harry Kane (Tottenham)
17 Sergio Aguero (Manchester City)
16 Charlie Austin (Queens Park Rangers)
14 Olivier Giroud (Arsenal)
Alexis Sanchez (Arsenal)