Real Madrid are Barcelona’s sole challengers for the Liga title going in the final match of the season after Atletico Madrid dropped out of the race following a 2-1 defeat at already-relegated Levante on Sunday.
Barca retained the initiative with a 5-0 thrashing of Catalan rivals Espanyol at Camp Nou and a win at Granada next weekend guarantees them the title.
Madrid ensured that they have the opportunity to punish any slip up from their great rivals, though, after beating Valencia 3-2 in an enthralling contest at the Santiago Bernabeu.
However, Atleti’s six-match winning Liga run came to an end and they are now three points adrift of Barca with an inferior head-to-head record, meaning Diego Simeone’s men cannot regain the title they won in 2014.
Barca never looked in trouble from the moment Lionel Messi’s stunning free-kick put Luis Enrique’s side in front, and Luis Suarez made it 11 goals in four Liga outings with a nine-minute double in the second half.
Rafinha and Neymar also added their names to the score sheet in Barca’s rout.
Cristiano Ronaldo was once again the star man at the Bernabeu as Madrid kept up the heat.
The Portuguese superstar scored the opener and Karim Benzema made it 2-0 before the break, despite suspicions of offside.
Rodrigo halved the arrears, but Ronaldo’s 33rd league goal of another sensational season restored the two-goal lead.
Andre Gomes ensured a nervy ending, only for Rodrigo to be sent off late on and hinder Valencia’s chances of an equaliser.
Atleti, who will face city rivals Madrid in the Champions League final, looked well placed when Fernando Torres fired them into an early lead.
However, Victor Casadesus restored parity on the half-hour mark and Giuseppe Rossi put the nail in the coffin of their title dreams in the 90th minute.
Granada ensured their top-flight safety by inflicting a heavy 4-1 defeat on Europa League finalists Sevilla, Isaac Cuenca the hero with two goals and an assist.
Deportivo La Coruna also guaranteed they stay in La Liga by beating Champions League qualifiers Villarreal 2-0, but Rayo Vallecano’s safety hopes suffered a blow in a 2-1 loss to Real Sociedad.
However, fellow relegation battlers Getafe and Sporting Gijon – who are level on points – played out a 1-1 draw to keep Rayo in with a chance.
In other matches, Nolito scored the winner as Celta Vigo beat Malaga 1-0, Eibar and Real Betis played out a 1-1 draw, and Las Palmas versus Athletic Bilbao ended goalless in a game that saw veteran playmaker Juan Carlos Valeron bid farewell to his home crowd in Gran Canaria.