Barcelona started out with plenty of possession but struggled for chances in the opening 15 minutes.
Iniesta struck an effort from outside the box on 30 minutes, but his side were surprisingly lacking in sharpness.
At the start of the second half Robert Acquafresca had the ball in the net but the flag was raised as he had strayed offside.
Levante had a half-chance in the 67th minute but Nabil El Zhar's fizzed cross was just too close to Victor Valdes.
Barca started to press and eventually they took the lead through Cesc Fabregas in the 85th minute as he fired low into the bottom corner for 1-0 and the three points.