Ferran Torres scored twice as Barcelona continued their impressive run of form by beating Osasuna for a fourth La Liga win in a row.
Former Manchester City striker Torres opened the scoring early on from the penalty spot after Gavi was fouled.
He got his second soon after with a clinical finish following a great through ball by Ousmane Dembele.
Pierre-Emerick Aubameyang stabbed in from another Dembele assist before substitute Riqui Puig added a fourth.
The 22-year-old showed great composure after his initial shot had been parried, taking the ball round the goalkeeper and cutting inside two defenders before curling in.
Aubameyang’s goal, meanwhile, was his fifth in six La Liga games since joining from Arsenal, making him the second-fastest Barcelona player to reach five goals in the competition in the 21st century, after Samuel Eto’o in 2004 and Zlatan Ibrahimovic in 2009.
The win moved Barcelona up to third on 51 points, Osasuna, meanwhile, are 11th.
The fight to finish in the top four and secure Champions League qualification is intensifying, with only four points separating Barcelona from Real Sociedad in sixth.
Sevilla were the only team in the top seven who played and did not win this weekend.
Sevilla have drawn six of their last eight games in LaLiga and their latest stumble at Vallecas means Real Madrid will move 10 points clear at the top if they win away at Mallorca on Monday night.
Barca have been closing the gap to Sevilla in recent weeks and can have genuine aspirations now of finishing second. Sevilla could even get pulled into the battle for the top four if their current slump continues.
Real Madrid, who comfortably lead with 63 points from 27 games, will play at lowly Mallorca on Monday.
Wins for Real Betis, Real Sociedad and Villarreal moved them closer to Sevilla. Fifth-placed Betis have 49 points, Real Sociedad, 47, and Villarreal, in seventh, have 45.