Lionel Messi gave Barcelona a much-needed La Liga victory with a 1-0 home win over Levante.
Messi struck superbly after 76 minutes, the Argentinian accepting Frenkie de Jong's pass to beat excellent Levante goalkeeper Aitor Fernandez with a firm shot off the far post.
The win takes Barcelona up to eighth and to within nine points of league leaders Real Sociedad and Atletico Madrid.
Levante are in the bottom three but the visitors started brightly at the Nou Camp and Marc-Andre ter Stegen made a point-blank save from Jorge de Frutos after 12 minutes.
Fernandez denied Martin Braithwaite four minutes later, the first of five first-half saves which frustrated Barcelona.
Levante defended in numbers but were eager to attack whenever possible and Dani Gomez sent his shot wide after good work by Roger Marti.
Barcelona should have taken the lead after 22 minutes when Messi found Antoine Griezmann, whose header was palmed out by Fernandez.
The rebound fell to Clement Lenglet in front of a gaping goal but the defender could not control his shot and the ball sailed over.
Barcelona continued to press after the restart but chances came and went.
Even Messi could not apply the telling touch with Fernandez saving well at his near post just after the hour mark.
Messi had 10 shots in the contest and it looked as if it would not be the Barcelona talisman's night.
But 14 minutes from time he broke into space through the left-hand channel to convert his eighth goal of the season.
Messi almost added a second five minutes later before the game finished in dramatic circumstances.
Levante claimed a stoppage-time penalty when Jose Luis Morales' shot hit Samuel Umtiti on the arm and the incident went to a VAR check.
Umtiti's arm was next to his body and no penalty was awarded, although Barcelona still had to survive a scare when ter Stegen saved Son's volley in the final seconds.