Stunning finishes from Lionel Messi and Neymar inside the first half looked to have Barca well on course for a 10th consecutive win in all competitions.
However, Ever Banega pulled a goal back before half-time thanks to an error from Claudio Bravo and the hosts improved display after the break was rewarded when Kevin Gameiro slotted home Aleix Vidal’s cross seven minutes from time.
Real Madrid’s 3-0 win over Eibar earlier in the day means the European champions now trail Barca by just two points with seven games remaining.
Cristiano Ronaldo registered his 49th goal of the season with the opener at the Bernabeu before Javier Hernandez and Jese Rodriguez made the most of rare starts by rounding off the scoring.
Atletico Madrid warmed up for their Champions League tie with Real in midweek with a 2-2 draw at Malaga as Antoine Griezmann’s double was cancelled out by a Fernando Torres own goal and Samuel Garcia.
A point all but ends Atletico’s title hopes, but moves them four points clear of Valencia and Sevilla in the battle for the Champions League places.
Sevilla are now unbeaten in 32 games at home stretching back 13 months, but they were blown away the visitors in the first half hour.
Neymar teed up Messi to curl into the far corner in with consumate ease on his favoured left foot after 14 minutes.
The Brazilian then made it 2-0 with a sumptuous free-kick to register his first league goal for nearly two months.
Luis Suarez should have made it a goal apiece for Barca’s star attacking trio, but he blazed over from a narrow angle after being played in by Neymar.
That miss handed Sevilla a lifeline and they were gifted a route back into the game seven minutes before the break when Bravo could only turn Banega’s long-range effort into his own net via the post.
Suarez passed up an even better chance to restore Barca’s two-goal advantage after the break when he skied the ball over the bar with an open goal to aim at.
At the other end Carlos Bacca did the same when presented with a more difficult opportunity as Sevilla pressed for an equaliser.
And it duly arrived when Gerard Pique gave away possession to Jose Antonio Reyes and he released Vidal, who in turn crossed for Gameiro to finish off a fine move.
“I thought in the first-half we were much the better team, we played very good football, controlled the game and caused them a lot of problems,” said Barca boss Luis Enrique.
“It was a shame that in the few minutes we lost control we conceded the goal that opened the game up.
“The second-half was much more even, both teams had their chances but neither was superior. We committed an error and we have paid for it.”
It was a far easier afternoon for Madrid as they proved too strong for Eibar despite making six changes to the side that had beaten Rayo Vallecano in midweek.
“Those that came into the team did well. Hernandez and Jese scored and we made a big effort to ensure everything went well today,” said Madrid boss Carlo Ancelotti.
The hosts took their time to get going, but made the breakthrough after 21 minutes when Ronaldo’s swerving free-kick flummoxed Xabi Irureta to end a run of 56 attempts at goal from free-kicks without scoring for the World Player of the Year.
Hernandez then got the goal his performance deserved as the Manchester United loanee headed Alvaro Arbeloa’s cross into the far corner.
And Jese rounded off the scoring on his first start of the season with a purposeful run into the area before firing low across Irureta into the far corner.
Atletico were lucky to escape with a point that keeps their quest for a return to the Champions League next season on track.
Griezmann tapped into an empty net after Carlos Kameni dropped Jesus Gamez’s long throw-in, but Atletico returned the favour when Torres turned Recio’s corner into his own net at the near post.
Malaga then deservedly went in front 20 minutes from time when Samuel latched onto Nordin Amrabat’s through ball and dinked a lovely finish over the onrushing Jan Oblak.
However, the hosts were denied all three points as Griezmann slammed home his second of the afternoon from Raul Jimenez’s knockdown seven minutes later.