Antoine Griezmann produced one of his best Barcelona performances and scored a stunning goal in his side's 4-1 win at Villarreal.
Barca flew out of the blocks at El Madrigal and took a third-minute lead when Jordi Alba's cross was turned into his own net by Pau Torres, under severe pressure from the Frenchman.
But Villarreal levelled within 10 minutes as a Paco Alcacer-led break ended with Marc-Andre ter Stegen turning Santi Cazorla's effort straight at Gerard Moreno, who could not miss.
But unlike in their previous two games, where they twice let leads slip to draw, Barca looked back to their best and restored their lead when Lionel Messi found Suarez on the edge of the area, and he found the top corner with a first-time finish of typical class (20).
Griezmann struck himself to give Barca breathing space moments before the break when he lifted Messi's lay-off over Asenjo with an exquisite 20-yard lob (43).
The Argentine then thought he had added a fourth 20 minutes from time but was denied by VAR.
Youngster Ansu Fati continued his impressive season from the bench to net his sixth goal of the season (87) late on, as Barca cut the gap to league leaders Real Madrid to four points, while Villarreal allowed fourth-placed Sevilla, who play on Monday, a chance to move six points clear in the race for the Champions League.
Barcelona finally look back to best
Barcelona sprung a surprise with the way they set up at El Madrigal, in a narrow 4-3-1-2, and reaped the rewards within minutes when Alba, given free rein down the left, crossed for the unfortunate Torres to turn the ball past his own goalkeeper before Griezmann had the chance.
Barcelona's struggles with leads was again realised 10 minutes later, however, as Paco Alcacer broke before squaring for Cazorla, and when his powerful drive was kept out there was no chance an in-form Moreno was missing the rebound from close-range.
But Barca were undeterred and showed a resolve they have been missing in recent weeks to restore their lead. Messi's typically strong run was followed by an inch-perfect ball into Suarez, who struck it perfectly into Asenjo's far corner.
Unwilling to be upstaged, shortly before half-time a finally confident Griezmann went one better from a similar position, lifting Messi's backheel over Asenjo, who was a couple of yards at most off his line.
Villarreal boss Javier Calleja made two changes at the break, and his side's attempts to stifle Barcelona were more effective straight from the restart.
Even with that, Barca's crisp counter-attacking play was still dangerous, and 21 minutes into the second period Messi's lovely ball forward to Rakitic allowed him space to find Vidal, whose first-time shot was well saved by Asenjo after a deflection.
Messi finally had a goal of his own 20 minutes from time, or so he thought when he tucked home Roberto's cut-back for a fourth, but VAR had other ideas and ruled it out for an earlier offside from Vidal.
They were not to be denied another in the closing minutes, though, as Fati displayed another moment of quality to add to his collection by collecting Alba's long ball forward, running at Raul Albiol and slotting inside Asenjo's near post.
Elsewhere in La Liga, Espanyol were all-but relegated after their 1-0 home defeat to Leganes left them 11 points from safety with four games to play, while Getafe lost ground in the race for the Champions League qualifying spots with a 0-0 draw at Osasuna.