Barcelona and Real Madrid both won and both scored four times, leaving the Catalans needing one more win to secure the Primera title. Barca’s 4-2 win over Real Betis keeps them 11 points clear of second-placed Real Madrid with four games remaining, and means they will almost certainly clinch the championship at Atletico Madrid next Sunday.

Tito Vilanova’s men twice fought back from behind against Real Betis and it was Lionel Messi, coming off the bench, who made the difference at Camp Nou. Dorlan Pabon gave the visitors the lead after two minutes and although Alexis Sanchez levelled soon afterwards, Betis regained the lead through Ruben Perez just before the break.

David Villa grabbed Barca’s second equaliser, heralding Messi’s entry to the action. The Argentine made an immediate impact, giving La Blaugrana the lead on the hour and hitting his second and Barca’s fourth with twenty minutes remaining.

Real Madrid overcame Real Valladolid in a seven-goal thriller at the Bernabeu. Oscar Gonzalez gave the visitors a surprise early lead before Marc Valiente deflected Angel Di Maria’s shot past his own goalkeeper for the equaliser. Cristiano Ronaldo then headed Madrid in front, only for Javi Guerra to make it 2-2 before half-time. Kaka’s left-footer and another Ronaldo header gave Los Blancos a two-goal cushion, although Lluis Sastre’s spectacular late volley kept the tension going until the final whistle.

Real Sociedad remain in fourth place, but dropped three vital points as they surprisingly lost 2-1 at Getafe. Philippe Montanier’s side appeared to be on course for an expected victory when Carlos Vela headed them into the lead after just four minutes. Their advantage was short-lived, however, as Pedro Leon pulling Getafe level and Abdelaziz Barrada turned the match around.

Sociedad’s defeat means they are now just two points ahead of Valencia, who scored four without reply against Osasuna to maintain the pressure on the Basques and send the Pamplona side back into the relegation mire. Roberto Soldado opened the scoring and Ricardo Costa headed the second from Tino Costa’s wide free kick on the stroke of half time. Ever Banega made it three with a free kick that went in off the crossbar after Alejandro Arribas was sent off for a foul on Soldado. The visitors were reduced to nine men when Timor picked up a second booking, and Jonas converted an injury time penalty after Nano blocked a Tino Costa cross with his arm.

Faltering Malaga trail Valencia by three points after they were beaten 1-0 by Granada in the Andalusian derby. Odion Ighalo’s 28th minute strike was enough to give El Grana a second consecutive win in their fight to avoid relegation.

Meanwhile, Sevilla are up to eighth, just one place and three points behind city rivals Betis after a resounding 3-0 success against Espanyol. A Joan Capdevila own goal opened the scoring before further goals from Jorge Moreno and Alfredo Negredo wrapped up the scoring with only 23 minutes played.

Another late escape act by relegation-threatened Real Zaragoza appears a realistic possibility after they convincingly beat Rayo Vallecano 3-0 with a brace from Apono, the first from the penalty spot, and one from Rodri. The win sees Zaragoza climb out of the bottom three, where they are replaced by Deportivo, who fought out a goalless draw with third-placed Atletico Madrid.

Levante’s Robert Acquafresca cancelled out Tomer Hemed’s early goal as bottom side Mallorca salvaged a point in a 1-1 draw at the Iberostar, while Celta Vigo remain in trouble after a similar result against Athletic Bilbao. Oscar de Marcos gave the Basques a first-half lead, but Iago Aspas’ 84th minute equaliser gave the Asturians a point.