Both sides were five points from safety ahead of the match, but it was the home side who went ahead just before the break.
Palermo's lead survived for just six minutes as Siena equalised through Innocent Emeghara, who took advantage of some slack marking to score his fifth goal in six matches.
The visitors seized the initiative and got a vital winner 20 minutes before full time from the penalty spot.
Palermo pressed for an equaliser in the closing stages and went agonisngly close when Josip Ilicic had his free kick tipped onto the crossbar.
Second-half substitute Nelson also hit the woodwork in stoppage time but Siena held on to earn three precious points.