Atletico Madrid defeated Elche to take a four-point lead over Barcelona, who ended their losing streak with a win over Athletic Bilbao. Real Madrid trail their city neighbours by six points, but have a game in hand as their match with Valladolid was postponed ahead of their Champions League semi-final with Bayern Munich this Wednesday.

Atletico Madrid defeated Elche 2-0 as tempers flared at Vicente Calderon. Joao Miranda headed Atleti in front ahead after David Villa had missed a 50th-minute penalty. Elche’s Cristian Sapunaru, whose foul on Villa led to the penalty being awarded, was shown a red card in the 90th minute for bringing down Diego Costa, who made sure of the result from the spot, leaving Diego Simeone’s side in pole position for the title.

Barcelona struck with two goals in three minutes to come from behind to beat Athletic Bilbao, ending a run of three straight defeats, but their 2-1 win was less than convincing. With Camp Nou less than half-full, Barca struggled against a well-organized and at times threatening Athletic side. Aritz Aduriz missed two good chances to put the Basques ahead before he finally did so in the 50th minute. Pedro Rodriguez equalized 20 minutes later and needed only two minutes more for Lionel Messi to give them the lead with a low free-kick.

Sevilla are the in-form side in La Liga and they warmed up for their Europa League semi-final against Valencia by brushing aside Andalusian rivals Granada to win 4-0 at the Ramon Sanchez Pizjuan. A Diego Mainz own goal gave the home side the lead on 15 minutes, but Lucas Alcaraz’s side survived the rest of the first half without further damage. They were undone after the break, however, as Kevin Gameiro, Stephane M’Bia and Vitolo all scored in the space of 17 minutes. The win sees Sevilla just three points behind fourth-placed Athletic, with the two meeting next weekend at San Mames.

Programming note: For viewers in the United States, La Liga games are shown exclusively on beIN SPORT, beIN SPORT Espanol and DishWorld. Even if you don’t have a TV subscription to beIN SPORT, you can access those channels via online streaming service DishWorld for $10/month. Read our review of DishWorld. And sign up for DishWorld via their website.

Real Sociedad gained their first win in four games as they defeated Espanyol 2-1 at Anoeta. The hosts fell behind to Jhon Cordoba’s thumping effort after 23 minutes, but Sergio Canales equalized with a deflected goal as the Basques turned up the heat on their opponents before Carlos Vela struck in stoppage-time to complete an amazing comeback for La Real. The result took Jagoba Arrasate’s side a step closer to ensuring a Europa League slot for next season while Espanyol remain in 10th place.

Malaga took a further step towards preserving their Primera status with a 2-0 win over Villarreal at La Rosaleda. Roque Santa Cruz beat goalkeeper Sergio Asenjo from a narrow angle to give Malaga the lead as early as the sixth minute and Sergi Darder doubled the advantage with a fine finish on 53 minutes. Villarreal offered little despite Los Blanquiazules being reduced to 10 men with 20 minutes remaining when Nordin Amrabat was red carded for dissent. Malaga’s win takes them to 10th while Villarreal are seventh, two points behind Real Sociedad.

Valencia were indebted to an 82nd-minute equalizer from substitute Jonas as they to salvaged a 1-1 draw at Osasuna. The home side appeared on course to end their four-game winless streak after Oriol Riera had put them ahead in the 19th minute. However, Jonas’ late strike secured a point for Los Che, whose priority now is their Europa League semi-final against Sevilla.

Relegation-threatened Getafe remain in deep trouble after a goalless draw at Levante. Cosmin Contra’s men wasted two opportunities to take the lead and had to survive the final 10 minutes of the game with 10 men after Alexis Ruano was dismissed for picking up a second yellow card. The Madrid minnows stay in the drop zone, while Levante missed out on the opportunity to mathematically secure their top-flight status for another year, though they should have little to worry about with 41 points.

Almeria are also still in the bottom three after losing 4-2 at home against Celta Vigo. Barcelona loanee Rodri cancelled out Nolito’s 20th-minute opener to send the Andalusians in level at half-time, but they were overwhelmed after the break as the visitors struck three times through Charles, Nolito, with his second of the match, and Fabian Orellana to make the game safe for the northerners. Almeria grabbed a late consolation when Oscar Diaz fired into the top corner, but Francisco Rodriguez’s men remain three points adrift of safety.

Rayo Vallecano continued their astounding improvement with a 3-1 win over Real Betis, who remain 10 points from safety and look all but certain to be relegated. Betis defender Paulao mis-hit a back-pass to gift Ruben Rochina the opening goal on 14 minutes, and things got even worse for the Brazilian when he diverted a cross into his own net shortly before the half-hour mark. Joaquin Larrivey made sure of the points for Rayo with a third early in the second half, although Javi Chica pulled one back for Betis with 12 minutes left. Rayo’s fifth consecutive home win sees Paco Jemez’s side move on to 40 points, half of which have come from their last nine games.