Chelsea were also stunned at home by Jamie Vardy's winner for Leicester in a 1-0 victory at Stamford Bridge to allow Arsenal to move level on points with their London rivals in fourth after a 3-1 win over Burnley.
Victory for Watford at West Ham pushed Manchester United down to seventh ahead of their first outing since Jose Mourinho was sacked as manager in midweek with Ole Gunnar Solskjaer recalling Paul Pogba for his first game in charge against Cardiff.
Liverpool opened up a four-point lead at the top with a highly impressive 2-0 win at Wolves on Friday to extend their unbeaten start to the campaign.
And City failed to cut the gap as they dropped points at home for the first time this season despite going ahead through Ilkay Gundogan's header.
Jeffrey Schlupp levelled for Palace against the run of play just after the half-hour mark and two minutes later Andros Townsend thumped a stunning volley into the top corner from well outside the area.
Pep Guardiola summoned Sergio Aguero from the bench soon after the break, but City had a mountain to climb when Kyle Walker chopped down Max Meyer and Luka Milivojevic dispatched the resulting penalty.
Kevin De Bruyne was also thrown on to try and turn the game around and his intended cross that flew in off the post brought City back into the game five minutes from time.
But despite incessant pressure, the champions could not find an equaliser to hand Liverpool a huge boost ahead of their trip to City on January 3.
Aubameyang at the double
Chelsea were also beaten at Stamford Bridge for the first time under Maurizio Sarri as Vardy fired home James Maddison's pass to give the Foxes their first victory in five games.
Defeat for the Blues allowed Arsenal to close on a top-four finish as two goals from Pierre-Emerick Aubameyang beat Burnley 3-1 in a bad-tempered clash.
Mesut Ozil made his return to Unai Emery's starting line-up in the Premier League for the first time since November 11 and helped set up Aubameyang's opener.
"We want Mesut like today," said Emery.
Aubameyang smashed home his 12th Premier League goal of the season to move ahead of Mohamed Salah as the division's top scorer early in the second period.
Ashley Barnes pulled a goal back for the visitors, but they remain in the bottom three as Alex Iwobi secured all three points for Arsenal in stoppage time.
The Clarets are now two points adrift of safety as Southampton's upturn in fortunes under Ralph Hasenhuettl continued with a 3-1 win at Huddersfield thanks to goals from Nathan Redmond, Danny Ings and Michael Obafemi.
West Ham's four-game winning run was ended by Watford with Troy Deeney and Gerard Deulofeu netting in a 2-0 win for the visitors.
Bournemouth are also level on points with Manchester United as David Brooks's double beat 10-man Brighton 2-0, who had England international Lewis Dunk sent off.
Fulham remain rooted to the foot of the table despite avoiding defeat on the road for just the second time this season in a 0-0 draw at Newcastle.