The Sicilians twice equalised with Abel Hernandez's 81st-minute strike seemingly grabbing at least a precious point.
But Benatia stole that away two minutes later, after Stefano Sorrentino saved from Luis Muriel, to leave Palermo four points from safety with two games left.
Udinese's sixth successive win moved them into the European places with Muriel (10) and Gabriele Angella (64) scoring the goals.
In between time Antonio Di Natale saw a penalty save but it mattered not thanks to Benatia.
Udinese grabbed their early lead following a counter-attack that saw Gabriel Silva feed Muriel to fire in just under the crossbar.
Palermo showed they were capable of recovering the deficit as Alejandro Faurlin headed a Fabrizio Miccoli cross just over before the veteran striker equalised from the penalty spot.
Miccoli drew the foul from Thomas Heurteaux on 35 minutes before lashing in the spot-kick.
Palermo continued to threaten after half-time, with Miccoli at the centre of the action, as he shot over after being found by Edgar Barreto.
Miccoli then beat the offside trap only to again lose his composure and fire wide.
The tension thickened when Salvatore Aronica handballed inside the box only for Sorrentino to save Di Natale's powerful right-foot shot.
Udinese did retake the lead on 64 minutes when Angella met a Di Natale corner with a firm header.
Palermo rallied again with Hernandez curling in a right-foot volley but the hosts' survival hopes hit the rocks moments later when Benatia was left with a tap in after Sorrentino had done well to deny Muriel.