Barca sneaked ahead of arch-rivals Real Madrid in La Liga after Zinedine Zidane's side came from behind with 10 men following the sending-off of Gareth Bale to draw 3-3 at home to Las Palmas thanks to two late strikes from Cristiano Ronaldo.
Lionel Messi scored for the fifth league game in a row to put Barca ahead in the ninth minute, heading Javier Mascherano's floated pass over goalkeeper Ivan Cuellar.
Sporting defender Juan Rodriguez clumsily knocked Luis Suarez's angled shot into his own net to double Barca's advantage two minutes later but Carlos Castro pulled one back for the visitors in the 21st minute from close range.
Suarez restored Barca's two-goal lead by ruthlessly volleying home and the Uruguayan was taken off at halftime, replaced by Paco Alcacer who got the fourth goal early in the second half following a layoff from Messi.
Barca had scraped 2-1 wins over Leganes and Atletico Madrid in their two games since the harrowing 4-0 defeat by Paris St Germain in the Champions League but got back into their groove against second-bottom Sporting.
[caption id="attachment_49873" align="aligncenter" width="640"]
Barcelona's Luis Suarez (R) celebrates a goal next to Lionel Messi (C) and Neymar. REUTERS
Neymar struck a fifth in the 66th minute by curling a free kick inside the near post and Ivan Rakitic capped a resounding attacking display by thumping home from inside the area.
The result was overshadowed by Luis Enrique's revelation in his post-match news conference that he would quit Barca at the end of the season after three years in charge.
Barca top the standings on 57 points, one ahead of Real, who have a game in hand on their arch-rivals as they seek a first league title since 2012.
Zidane's side clawed back from 3-1 down against Las Palmas thanks to Ronaldo, who converted a penalty and headed home from a corner one minute from time.
Real had looked to be on their way to a comfortable win over a Las Palmas side who had lost their last four games and had never won at the Bernabeu when Isco beat the offside trap to score in the eighth minute.
[caption id="attachment_49874" align="aligncenter" width="640"]
Real Madrid's Cristiano Ronaldo (R) and Las Palmas' Daniel Castellano in action. REUTERS
Las Palmas midfielder Tana responded with a brilliant piece of skill to skip past Sergio Ramos and blasted into the roof of the net two minutes later.
The game turned against Real when Bale was shown two yellow cards in under 10 seconds, first for kicking out at Jonathan Viera and then for pushing the striker in anger.
Viera fired Las Palmas into the lead from the penalty spot in the 56th minute after a handball by Ramos and Kevin Prince-Boateng stretched their lead three minutes later but Real, who had three goals ruled out, refused to give in.
Granada CF 2
Wakaso 38, Cuenca 53 Alaves 1
Celta Vigo 2
Iago Aspas 21, Wass 30 Espanyol 2
Gerard 28, Pablo Piatti 32
Real Madrid 3
Isco 8, Ronaldo 86(pen),89 Las Palmas 3
Tana 10, Viera 56(pen), Kevin-Prince Boateng 59
Messi 9, Rodriguez 11(og), Suarez 27, Alcacer 49, Neymar 65, Rakitic 87 Sporting Gijon 1
Roberto Torres 64(pen) Villarreal 4
Roberto Soriano 2, Roberto Soldado 27(pen), Rafael Borre 74,78
P W D L F A Pts
25 17 6 2 71 21 57
2 Real Madrid
24 17 5 2 63 25 56
24 16 4 4 48 29 52
4 Atletico Madrid
24 13 6 5 44 21 45
5 Real Sociedad
25 14 3 8 39 34 45
25 11 9 5 36 19 42
25 11 6 8 41 33 39
8 Athletic Club
24 11 5 8 31 29 38
25 9 9 7 35 33 36
10 Celta Vigo
24 10 5 9 39 39 35