Posh took a sixth-minute lead through Grant McCann but, under new boss Ian Holloway, Palace levelled with 10 minutes to go when substitute Andre Moritz netted and the visitors grabbed the winner two minutes later via Kagisho Dikgacoi.
The win enabled Palace to climb back above Middlesbrough, who had taken over at the summit after beating Sheffield Wednesday 3-1 on Friday night.
Cardiff held off a late Hull fightback to win 2-1 and stay in third.
An early effort from Heidar Helguson and an 82nd-minute header from Mark Hudson put the Welshman in charge although Hull hopes were raised by a 90th-minute goal from Robert Koren.
Steve Bruce's side could not find an equaliser, though, as Cardiff remained two points adrift of Palace.
Forest defender Elliott Ward, on loan from Norwich, put through his own net to hand Leicester a seventh-minute lead before Adlene Guedioura equalised midway through the first half.
David Nugent's superbly-taken lob, his seventh of the season, put the fifth-placed Foxes back in front before the break but Simon Cox's second-half penalty, Forest's first from the spot in 14 months, levelled matters.
The hosts, in new boss Henning Berg's first home game in charge, went ahead thanks to Ruben Rochina's 13th-minute penalty but Marlon King equalised four minutes later.
Five of the Hornets' goals - from Matej Vydra, Almen Abdi, Mark Yeates, Sean Murray and Troy Deeney - came after Leeds had been reduced to nine men, but prior to that they had still looked the better side, having gone ahead through Vydra.
Leeds did score a penalty through Michael Tonge but, having lost Jason Pearce to a first-half red card and Rodolph Austin to injury after all their substitutions had been made, were made to suffer for the best part of an hour.
The Republic of Ireland striker only started due to an injury to Lions top scorer Darius Henderson, but he made his mark by grabbing the winner with 14 minutes to go.
Derby rookie Will Hughes, who earned a call-up to the England Under-21 squad this week, had earlier cancelled out a controversial opener from Liam Feeney.
Wanderers twice led through Mark Davies and Lee Chung-yong but Blackpool earned a point thanks to Thomas Ince and Nathan Delfouneso.
Craig Mackail-Smith and Will Buckley cancelled out efforts from the hosts' Bakary Sako and Tongo Doumbia and the Seagulls looked to have won it when Stephen Dobbie's penalty in the 89th minute put them ahead for the first time.
But Wolves, who had played with 10 men for the entire second period following Karl Henry's dismissal on the stroke of half-time, grabbed a dramatic equaliser as Roger Johnson nodded in from close range.
Ipswich moved off the foot of the table after registering their first home win of the season with a 2-1 victory over Burnley.
Daryl Murphy put Mick McCarthy's men ahead after 67 minutes but Sam Vokes looked to have earned the Clarets a point with an equaliser with 10 minutes to go.
There was still time for DJ Campbell to net a winner, however, as Ipswich climbed to 22nd.