|Real Madrid's Cristiano Ronaldo (R) celebrates a goal with teammate Casemiro during the Spanish league football match against Sevilla. (GERARD JULIEN/AFP)|
Madrid remain in the driving seat after the European champions saw off Sevilla 4-1 as they have two games remaining to Barca's one.
However, Barca remain on top thanks to their better head-to-head record with Neymar scoring a hat-trick as they also won 4-1 at Las Palmas.
Madrid visit Celta in their game in hand on Wednesday and then travel to Malaga, whilst Barca host Eibar on the final day next Sunday.
Sevilla's defeat at the Bernabeu also guarantees they will finish fourth and Atletico Madrid, who drew 1-1 at Real Betis, qualify automatically for next season's Champions League in third.
At the bottom, Sporting Gijon joined Granada and Osasuna in being relegated despite winning 1-0 at Eibar as Deportivo la Coruna secured safety in a 0-0 draw at Villarreal.
"It is a long road. We know to win the league in Spain is not easy," said Madrid boss Zinedine Zidane.
"Every day we are getting closer, we keep winning but there are two games to go and we need to keep doing what we have until now."
However, the fact two of Barca's four league defeats this season came at the two sides Madrid have still to visit gives the Catalans' boss Luis Enrique hope.
"We have one game left and the objective is to win it," he told TV station Movistar. "If we have lost (there) then any team can."
Sevilla have now won just three of their last 13 games as their season has petered out to a disappointing end.
However, they gave Madrid more than a few scares at the Santiago Bernabeu.
Nacho gave the hosts the lead in controversial fashion as he curled home a quick free-kick with the Sevilla defence caught unawares and their protests towards referee Alberto Undiano Mallenco falling on deaf ears.
That goal meant Madrid broke Bayern Munich's European record for scoring in consecutive games as their streak now stretches to 61 games.
RONALDO REACHES 400
Sevilla fired their first warning shot when Stefan Jovetic smashed a shot against the post from the edge of the area.
However, moments later it was 2-0 as Sergio Rico could only palm James Rodriguez's effort into the path of Cristiano Ronaldo to score his 400th Madrid goal.
Jovetic then saw a fine chipped effort come back off the bar and was denied by Keylor Navas when played through by Joaquin Correa as Sevilla continued to threaten.
And they finally got back in the game through Jovetic's neat finish from outside the box three minutes into the second-half.
Yet, just as the hosts' nerves were becoming frayed, Ronaldo appeared once more by crashing home Toni Kroos's cut-back to restore Real's two goal lead.
And Kroos rounded off the scoring himself by prodding into the far corner six minutes from time.
Barcelona kept the pressure on despite a series of defensive absences that meant Brazilian 21-year-old Marlon Santos was handed a full debut in the Canary Islands.
The visitors still hand all of Lionel Messi, Luis Suarez and Neymar to call on up front and the latter two combined to give Barca a 2-0 half-time lead.
After wonderful passes from Sergio Busquets and Andres Iniesta, Suarez squared for Neymar to open the scoring.
The roles were reversed two minutes later as Neymar's chip freed Suarez to dink home his 36th goal of the season.
Pedro Bigas momentarily gave Las Palmas hope just after the hour mark.
But Neymar headed home Ivan Rakitic's cross and then sealed his first hat-trick of the season 19 minutes from time when he slotted in Jordi Alba's through ball.
Spanish league results:
Alaves 3 Celta Vigo 1
Las Palmas 1 Barcelona 4
Villarreal 0 Deportivo La Coruna 0
Real Sociedad 2 Malaga 2
Real Betis 1 Atletico Madrid 1
Real Madrid 4 Sevilla 1
Athletic Bilbao 1 Leganes 1
Eibar 0 Sporting Gijon 1