Madrid - Barcelona are one win away from retaining their La Liga title after Lionel Messi, Luis Suarez and Neymar all scored as they thrashed Espanyol 5-0 in the Catalan derby on Sunday.
Real Madrid moved into second place, a point behind Barca with one game remaining, as they racked up an 11th straight La Liga win, 3-2 over Valencia, thanks to two goals from Cristiano Ronaldo.
However, Atletico Madrid's title hopes are over as they lost 2-1 at already relegated Levante.
Barca will be champions with victory at Granada next weekend, who crucially are now mathematically safe from relegation after a 4-1 win at Sevilla.
Real Madrid travel to Deportivo la Coruna on the final day of the season.
"We are going to play for a league of 38 games in one match," said Barca boss Luis Enrique.
"There will be tension, Real Madrid and ourselves are in the same situation of playing away from home and having to win.
Also read: Winning for Cruyff motivates Barca - Iniesta
"The prize is there and it is attractive enough that we will all be very motivated."
Barcelona got off to a perfect start when Messi curled a delightful free-kick into the top corner after just eight minutes.
However, they had to wait until seven minutes into the second half for the second as Messi teed up Suarez to fire high past Pau Lopez.
Suarez maintained his four-goal lead over Ronaldo as the league's top scorer as he powered home his 56th goal of the season from Neymar's corner.
A howler from Lopez handed Rafinha an open goal to tap home his first goal since suffering a serious knee injury at the start of the season, before Neymar rounded off the scoring.
Madrid shrugged off the absences of Gareth Bale and Luka Modric through injury to move above Atletico for the first time in 2016 with victory over Valencia.
"Now we are second, there is one game to go and anything can happen," said Real coach Zinedine Zidane.
"In football you never know what can happen. We need to be aware of that, give our all until the end and see what happens."
Ronaldo opened the scoring when he fired into the far corner for his 48th goal of the season.
Valencia felt hard done by for Madrid's second three minutes before half-time as the referee overruled his linesman, who had flagged Karim Benzema offside, before he slotted home as the ball through to the French striker deflected off Valencia defender Joao Cancelo.
The visitors' bright start to the second period was rewarded when Rodrigo pounced on an error from Raphael Varane to halve the deficit.
Ronaldo quickly restored Real's two-goal advantage, but Andre Gomes ensured a nervy finish when he smashed home from the edge of the box before Valencia were reduced to 10 men late on when Rodrigo was shown a straight red card.
Atletico paid for their exertions in setting up a second all-Madrid Champions League final against Bayern Munich in midweek, despite getting off to a brilliant start when Fernando Torres opened the scoring from Koke's pass after two minutes.
Diego Simeone had left inspirational central defender Diego Godin and top scorer Antoine Griezmann on the bench and was made to pay when Victor Casadesus headed Levante level on the half hour mark.
Griezmann was introduced for the second half and came closest to finding a winner for Atletico when Diego Marino turned his near post effort wide 15 minutes from time.
But Giuseppe Rossi finished off a sweeping Levante counter-attack in the final minute to end Atletico's hopes of an unlikely second title in three years.
"We are ending a fantastic season and we are one game away from competing with Barcelona and Real Madrid," said Simeone.
"We were a little bit short. I am hurting to fall at the penultimate hurdle, but I am delighted to have been fighting until now for the championship."
At the bottom, Sporting Gijon remain out of the relegation zone thanks to their superior head-to-head record with Getafe after the two drew 1-1.
Rayo Vallecano also remain in the bottom three after losing 2-1 at Real Sociedad.