That, coupled with Lecce's 2-0 victory at Bari, ensured a remarkable slump for Sampdoria who last season finished fourth and qualified for the Champions League.
Meanwhile Udinese took a step towards Champions League qualification for next season with a 2-0 win at Chievo that maintained their two-point lead over Lazio.
Sampdoria came into their match knowing anything less than three points would mean their Serie A survival was no longer in their own hands.
And they were unlucky when a Nicola Pozzi strike was wrongly ruled out for offside.
They suffered further misery as Fabrizio Miccoli gave Palermo the lead on the stroke of half-time.
Jonathan Biabiany restored parity on 50 minutes despite a suspicion of a foul on goalkeeper Francesco Benussi.
Sampdoria had another strike ruled out, this time correctly, but four minutes from time they were hit on a counter-attack as Mauricio Pinilla skipped past two tired challenges, ran fully 60 yards, swapped passes with Abel Hernandez and then finished from close range.
Sampdoria will now join already relegated Bari and Brescia in Serie B next season.
A group of their fans pelted the team coach with bottles as they left the stadium.
In Bari, Lecce ensured they stayed in Serie A for another campaign as Jeda, the smallest player on the pitch, headed home a corner from the penalty spot to give them the lead over their local rivals.
And late on it was Jeda's shot that was turned into his own net by the back-tracking Andrea Masiello to secure the three points.
Bari fans showed their disapproval by letting off flares, forcing the game to be suspended briefly during the second period.
In Verona, Udinese earned the result they needed to push themselves back above Lazio and into the crucial fourth place.
Mauricio Isla opened the scoring after his own cross sparked some pinball in the Chievo box and he arrived from wide right to slot the ball home.
Ghana midfielder Kwadwo Asamoah then doubled the advantage in the second period with a rocket from distance.
If Udinese beat champions AC Milan at home next Sunday or Lazio fail to win at Lecce, the northerners will be in the Champions League for only the second time in their history, the last time being in the 2005/06 season.
In fact, realistically, a draw against Milan will be enough for Udinese unless Lazio beat Lecce by at least nine goals.
"We're yet not in paradise because we still need one point," said Udinese coach Francesco Guidolin.
"There's one more step to take and we hope we'll be in form in front of our own fans."
Roma's hopes of remaining in the Champions League race ended as they lost 2-1 at Catania.
The hosts twice hit the woodwork but then went behind.
Having come on for the injured Juan, substitute centre-back Simone Loria gave Roma the lead with a 14th-minute header from a Francesco Totti free-kick.
But second half goals from Gonzalo Bergessio and Alejandro Gomez, five minutes into injury time, ensured Roma failed to qualify for the Champions League for the second time in three seasons.
They now face a battle with Juventus for the last Europa League spot after the Old Lady of Turin lost 1-0 at Parma.
Roma host Sampdoria next week needing a point to play in Europe next year while Juve must beat Napoli and hope for a Roma defeat.
In the day's late match Napoli and Inter Milan drew 1-1 in a result that suited both teams.
Napoli got the point they needed to ensure third place and direct qualification to next season's Champions League group stages, while Inter are now certain to finish second.