Lionel Messi scored a hat trick to make it 36 goals in 35 games against Sevilla as Barcelona won 4-2 at the Ramon Sanchez-Pizjuan Stadium to go 10 points clear of Atletico Madrid at the top of La Liga.
Barca had twice been behind thanks to goals from Jesus Navas and Gabriel Mercado, but Messi twice brought them back into the contest before wrapping up his treble and then setting up Luis Suarez for a late fourth.
Barca had created the first threat of the afternoon, Messi's whipped free kick cleared to Sergio Busquets, whose pass gave Luis Suarez a chance that he fired wide.
But Sevilla soon showed the danger they could cause on the break, Banega finding Navas and his final ball speeding across the face of goal.
And the home side asked more questions on the half hour, some crisp play setting up Wissam Ben Yedder, who saw his strike blocked.
Philippe Coutinho and Arturo Vidal then linked neatly before a pass towards Messi was overhit -- and the La Liga leaders were made to pay when they fell behind after 22 minutes, Navas striking after a stylish break involving Promes and Ben Yedder.
But the Sevilla lead lasted only four minutes, Messi equalising with an outstanding volley from just inside the area after Ivan Rakitic had crossed.
Barca's Gerard Pique was shown a yellow card for fouling Wissam Ben Yedder, and three minutes before the break his side were behind for the second time when keeper Marc-Andre ter Stegen's poor kick found its way to Pablo Sarabia, who set up Mercado.
Marko Rog was booked for a foul on Ousmane Dembele early in the second half, Suarez close to meeting Messi's ball in from the free kick.
Barca missed a chance to level, Dembele hitting his shot all wrong, before Messi had an effort blocked soon afterwards.
But with 67 minutes gone Messi was on target again, curling the ball home from the edge of the box to make it 2-2, and he was soon close to a hat-trick when keeper Tomas Vaclik diverted his effort over the bar.
He was not to be denied, however, and with five minutes remaining he completed his treble, clipping home after a Carles Alena shot was blocked and fell to him, before finding Suarez for another cool finish in the dying seconds.