Palmer left City for Chelsea in a deal worth around $A82 million in September and showed supreme composure to fire past Ederson in the dying stages of a thrilling match at Stamford Bridge on Sunday (Monday AEDT).
Rodri had looked like securing a win for Pep Guardiola's team with a deflected effort with four minutes left of regulation time.
But referee Anthony Taylor pointed to the spot when Ruben Dias slid into substitute Armando Broja in the box and, after a delay, Palmer swept his shot into the corner to stop City moving three points clear at the top.
Chelsea had dented Tottenham's title ambitions with a wild 4-1 win against Ange Postecoglou's team on Monday and proved a challenge for City, too, by coming back from behind three times.
"That is why we always say that the Premier League is the best league in the world, Chelsea manager Mauricio Pochettino told Sky Sports.
"And if we want to build something special here in Chelsea, it's in this way that we need to play.
"I think it was another unbelievable game, scoring four goals again against a team that is, for me, the best in the world. It's good to go to the international break with this feeling."
Erling Haaland fired City ahead from the penalty spot in the 25th minute after VAR adjudged Marc Cucurella to have fouled the Norwegian.
City re-took the lead two minutes after the break, with Haaland scoring again — sliding in to convert from close range.
Chelsea's third goal eventually came from Nicolas Jackson in the 67th, the striker firing in the rebound after Gallagher's long shot was parried.
Rodri's powerful effort from the edge of the box took a big deflection off Silva to send Chelsea goalkeeper Robert Sanchez the wrong way, and City looked home and dry until Palmer's late intervention.
While Tottenham are now fourth, two points adrift, City are just a point clear of second-placed Liverpool, who beat Brentford 3-0 with Mohamed Salah continuing his remarkable Anfield scoring record with two more goals to bring up his 200th in English football.
Only Haaland (13) has scored more in the Premier League this season than the Egypt international, who took his tally to 10 by netting for the sixth successive home game to write another entry in club's history books.
Sheffield United clawed their way off the bottom of the table with their 1-1 draw at Brighton Hove & Albion, while Tomas Soucek grabbed a late winner as West Ham United came from behind at the London Stadium to beat Nottingham Forest 3-2.