Levante had lost five in a row in all competitions coming into the match but got three points to stop their slide down the table.
It looked like being a familiar story when Cristian Sapunaru put the visitors in front after 26 minutes but Barral levelled four minutes before the break and then headed in the winner with 10 minutes to go.
With Levante desperate for a result it was nervy opening, with neither side having a view of goal until Juanfran Garcia blasted over for the hosts in the 18th minute.
Richmond Boakye was similarly wayward at the other end but the breakthrough soon came for Elche when Alberto Botia nodded the ball down for Sapunaru to fire home.
Sergio Pinto saw a decent blocked turned away for a corner as Levante sought a response, eventually getting it in the 41st minute when Nabil El Zhar crossed for Barral to head into the net.
The second half was almost as slow as the first to get going, with Ruben Perez having the first real chance in the 58th minute when he sent a shot sailing over the crossbar.
Moments later, Nikos Karabelas brought a decent save out of Elche goalkeeper Antonio Tono with a close-range effort, and he tried again moments later with Tono this time turning it over for a corner.
Boakye had a glorious chance to restore Elche's lead in the 69th minute when he was picked out by Edu Albacar's corner, but he fired wide from close range and Barral soon made him pay as he headed in Pedro Rios' cross.
Levante did a decent job of controlling play as they sought to hang on to their lead, with Elche's only chance at an equaliser coming deep into stoppage time when Aaron Niguez headed over from Albacar's free-kick.