Barcelona closed in on the La Liga title by thrashing local rivals Espanyol 5-0 on Sunday as Atletico Madrid dropped out of the race after losing 2-1 at Levante and Real Madrid beat Valencia 3-2.
Barca top the standings on 88 points, Real moved into second on 87 and Atletico have 85 with one game remaining. Barca went ahead in the eighth minute when Lionel Messi curled a 22-yard free kick into the top corner with a magnificent finish.
Luis Suarez stretched the hosts' lead with two goals in the second half before Rafinha and Neymar completed the rout.
Atletico took the lead at Levante in the first minute through Fernando Torres, but the relegated home side fought back, equalising through Victor Casadesus before Giuseppe Rossi grabbed the winner in stoppage time.
Real were without goalkeeper Keylor Navas, defender Dani Carvajal, midfielder Luka Modric and winger Gareth Bale through injury, but went ahead thanks to a thunderous low finish from Cristiano Ronaldo in the 26th minute.
Karim Benzema scored the second before the break but Rodrigo Moreno, who was later sent off, pulled one back for Valencia after halftime.
Ronaldo added his second a few minutes later before Andre Gomes scored a sumptuous consolation goal for Valencia.