Barcelona were forced to work hard before Lionel Messi's second-half double earned them a 2-1 victory at Levante.
Jose Barkero gave Levante the lead with a 23rd-minute penalty and Barça appeared to be making heavy weather of getting back on terms. But Messi burst into life with two goals in nine minutes, the second a spot-kick of his own, to turn the game around.
Pedro's early cross-shot was beaten away by goalkeeper Gustavo Munua and Thiago Alcantara should have done better than head Alexis Sanchez's cross wide from six yards. Pedro Lopez made a vital block to prevent Thiago getting a shot away moments later and Munua fielded Adriano's ambitious effort.
The unmarked Thiago wasted another header chance when he directed his flicked effort straight at Munua before Levante took a shock lead against the run of play. After Barcelona failed to deal with a corner, Pedro Lopez headed straight at Sergio Busquets who was adjudged to have handled the ball. Busquets was booked before Barkero calmly tucked away the penalty.
Munua held Cesc Fabregas' downward header, but Levante could have had a second in the 38th minute. Adriano collided with winger Valdo and, as both players crashed to the ground, full-back Pedro Lopez ran clear but dragged his shot wide. Referee Jose Antonio Teixeira, having played advantage, then booked Adriano.
The hosts had another chance on the break seven minutes after half-time when Arouna Kone broke away and found Barkero but his return pass was cleared by Carles Puyol. Munua made an excellent diving save from Adriano, but Javier Mascherano had to be alert at the other end after Roberto Botelho dribbled out of defence and almost sent the dangerous Kone through.
But after their impressive start to the second period, Levante were pegged back when the hitherto quiet Messi curled home a precise finish from the edge of the penalty area. The Argentinian star then sent a free-kick over the bar after being fouled by Vicente Iborra, but he was soon given his chance from the spot.
Botelho pushed substitute Isaac Cuenca to the ground in the box and was awarded a penalty. Levante's lengthy protests saw full-back Juanfran booked before Messi powered an unstoppable penalty into the top right corner.
Levante threw Abdulkader Ghezzal on as a second striker, but it was Barça substitute Andres Iniesta who was unlucky to be denied another penalty when he was impeded by Sergio Ballesteros. Ghezzal headed over in stoppage time before Victor Valdes held former Barcelona player Xavi Torres' low long-range strike.