Chelsea lost the past six editions of this fixture without scoring a goal but came from behind three times to earn a point against Pep Guardiola's side. Despite playing a draw, Manchester City are still in the top of the table.
Erling Haaland opened the scoring from the penalty spot in the 17th minute of the first half, but goals from Thiago Silva and Nicolas Jackson levelled the score at 1-1 and 3-3 respectively.
Sterling scored from a low 37th-minute cross from the excellent Reece James, giving Chelsea the lead for the only time in the match. But Manuel Akanji left unmarked to head home Bernardo Silva's cross and send City in 2-2 at the break.
Thiago Silva looked like suffering a bitterly unfair ending to his afternoon when he diverted Rodri's speculative left-footed effort beyond Robert Sanchez four minutes from time.
Ruben Dias then fouled substitute Armando Broja to concede the late spot-kick. The 21-year-old Palmer, who left City to join Chelsea in a deal in August, held his nerve as Ederson guessed correctly to make it four out of four from 12 yards for his new club.
Chelsea (4-3-3, right to left): 1. Robert Sanchez — 24. Reece James (27. Malo Gusto), 2. Axel Disasi, 6. Thiago Silva, 3. Marc Cucurella— 23. Conor Gallagher, 8. Enzo Fernandez (10. Mykhailo Mudryk), 25. Moises Caicedo (19. Armando Broja) — 20. Cole Palmer, 15. Nicolas Jackson (16. Chimuanya Ugochukwu), 7. Raheem Sterling.
Man City (4-2-3-1, right to left): 31. Ederson (GK) — 2. Kyle Walker, 25. Manuel Akanji, 3. Ruben Dias, 24. Josko Gvardiol — 16. Rodri, 20. Bernardo Silva — 47. Phil Foden, 19. Julian Alvarez (8. Mateo Kovacic), 11. Jeremy Doku (10. Jack Grealish) — 9. Erling Haaland.