Palmer struck in the final seconds after Rodri's 86th-minute strike looked set to send City home from Stamford Bridge with all three points.
It was a sweet moment for Palmer after City boss Pep Guardiola opted to sell the rising star to Chelsea in a surprise £42 million ($51 million) deal in September.
Guardiola said Manchester-born Palmer, who joined City aged six, rejected his offer of more playing time this season in a bid to keep him.
The youngster made his old boss pay in the most dramatic fashion, having the final say in an astonishing encounter that provided countless plot twists.
City blew the lead three times and also had to come from behind themselves before finally being forced to settle for a draw that leaves them one point clear of second-placed Liverpool and third-placed Arsenal.
Erling Haaland's controversial penalty had put City ahead before Thiago Silva equalized.
Raheem Sterling netted against his old club to give Chelsea the lead, only for Manuel Akanji to level at the end of a breathless first half.
Haaland bagged his 17th goal of the season after the break, before Chelsea's Nicolas Jackson equalized.
Rodri appeared to have landed the knockout blow with four minutes left, but there was a sting in the tale thanks to Palmer's penalty.
City lit the fuse on an explosive contest when they snatched the lead after 25 minutes.
Marc Cucurella pulled down Haaland as the City striker tried to reach Bernardo Silva's cross inside the six-yard box.
It was a debatable decision as Haaland appeared to tug at Cucurella's shirt before the Chelsea defender's contract.
Blues boss Mauricio Pochettino was furious that play was not stopped prior to the cross for a potential foul by Jeremy Doku on Reece James and Moises Caicedo as the Chelsea players tried to head clear.
Haaland blocked out the bubbling Chelsea frustration as he calmly sent Sanchez the wrong way from the spot.
Spirited Chelsea
Chelsea channeled their angst into a spirited response, and they were level four minutes later.
Ederson sprang to his left to make a superb tip-over from James' free-kick.
But from Gallagher's resulting corner, Silva glanced his header into the far corner from six yards after Palmer blocked Haaland's attempt to mark the Chelsea defender.
Pochettino's men took the lead in the 37th minute when Josko Gvardiol made a hash of clearing Gallagher's pass, getting his feet in a tangle as James pounced with a low cross that gave Sterling the simple task of tapping in to reward his man of the match display.
City remained a menace and they left Pochettino raging at his players in first-half stoppage-time when slack marking allowed Akanji to head home from Bernardo Silva's cross.
Two minutes after the interval, City went in front when Haaland finished off an incisive counter.
Sliding in to meet Julian Alvarez's cross, Haaland bundled the ball over the line via an accidental deflection off his arm that survived a VAR check.
Alvarez's blast was held by Sanchez, the end-to-end drama showing no let-up as Palmer's superb run was thwarted by Ederson's save.
Ederson needed treatment for an injury moments later and the Brazilian was at fault for Chelsea's 67th-minute equalizer.
Instead of pushing away Gallagher's 20-yard effort, Ederson parried it straight back to Jackson, who gratefully slotted home for his fourth goal in his last two games.
Rodri struck in the 86th minute, his shot taking a wicked deflection off Silva's foot as it raced past the wrong-footed Sanchez.
However, Palmer had the last word at the end of an incredible afternoon, the 21-year-old lashing in his penalty in stoppage-time after Armando Broja was tripped by Ruben Dias.