Free-scoring City knew a 10th win from 10 home games would send them to the Premier League summit, with second-placed Arsenal playing at Newcastle on Sunday, when third-placed Chelsea meet fourth-placed Liverpool.
But relegation-threatened Palace caused City a scare and goalkeeper Joe Hart suffered a cut around his eye after diving at the feet of Cameron Jerome to thwart the visitors as the hosts were held to 0-0 at half-time.
The hosts finally broke the deadlock through Edin Dzeko's 50th City goal after 66 minutes.
That was as good as it got for City, who have now netted a record 54 goals in the first 19 fixtures of the season.
Defending champions Manchester United claimed a slender 1-0 win at Norwich to return to sixth in the table, seven points behind 2012 winners City.
With Everton, Newcastle and Tottenham in action on Sunday, United had an opportunity to enhance their position in the standings, but were second best in the opening half at Carrow Road.
Danny Welbeck replaced Ryan Giggs at half-time and netted after 57 minutes after Ryan Bennett's clearance ricocheted off Javier Hernandez and into the substitute's path.
Welbeck rounded John Ruddy before tucking in for his fourth goal in four Premier League games.
United, without striker Wayne Rooney in Norfolk, held on to claim a seventh straight win in all competitions.
Hull scored four times in the opening 23 minutes of the second half in their 6-0 defeat of Fulham, who have lost nine of their last 11 top-flight fixtures.
Ahmed Elmohamady, Robert Koren, George Boyd and Tom Huddlestone were on target, before Matty Fryatt and Koren, with his second, made it six in a miserable Fulham performance.
Huddlestone's goal came on his 27th birthday and means the former Tottenham midfielder can now have a hair cut after a two-year scoring drought. He celebrated by having a lock of his hair cut by the Hull physio.
Aston Villa ended a run of four straight losses by drawing 1-1 with 11th-placed Swansea, who are five points clear of the relegation zone in a congested table.
Villa took a seventh-minute lead through Gabriel Agbonlahor after neat link-up play between the forward and Andreas Weimann.
Swansea responded nine minutes before the break when Roland Lamah converted Pablo Hernandez's cross for his first goal in English football and neither side could find a second-half winner.
In the day's early kick-off, West Ham and West Brom played out an entertaining 3-3 draw.
West Ham manager Sam Allardyce had labelled the game a 'must win' for his side, who remain without a league victory in December.
Joe Cole's opening goal was cancelled out by a Nicolas Anelka double in the striker's first match in over two months.
Two goals in two minutes from half-time substitute Modibo Maiga and skipper Kevin Nolan put West Ham back in front but Saido Berahino levelled and neither side could find a winner, leaving the Hammers in a precarious position.