In the past weekend action in Spain, leaders Real Madrid remain in pole position in La Liga after winning at Malaga while second placed Atletico Madrid are three points behind their city rivals after beating Espanyol. Barcelona put seven past Osasuna but stay third, trailing Atletico by a point.

Real Madrid were made to work for their 1-0 win at La Rosaleda against a spirited Malaga side. Cristiano Ronaldo got the vital goal midway through the first half, firing home a low strike after a superb cross-field ball from Gareth Bale for his 25th goal of the Primera campaign. Malaga failed to make the most of having half the possession with no end product to some enterprising attacking play.

Atletico Madrid remain close behind their city rivals following a 1-0 victory over Espanyol at the Vicente Calderon. Diego Costa scored the only goal of the game after 10 minutes, picking up David Villa’s cross from the left and curling it into the bottom corner. Despite a late spell of pressure, the visitors could not find an equaliser and the defeat leaves them ninth with just one win in their last four games.

Barcelona put their stuttering form behind them ahead of next weekend’s Clasico by hammering Osasuna 7-0 at Camp Nou. Lionel Messi hit a hat-trick to make him Barca’s all-time leading goalscorer with 371. The Argentine opened the scoring after 19 minutes and Alexis Sanchez and Andres Iniesta increased the hosts’ advantage before the break. Messi struck again in the second half and completed his treble with a simple finish in the 87th minute, after substitute Cristian Tello had grabbed a fifth for Barca. There was still time for a seventh, Messi providing an assist by setting up Pedro Rodriguez.

Aritz Aduriz missed a penalty but recovered to score the equaliser as Athletic Bilbao drew 1-1 at Villarreal. The point puts Los Leones six points clear of Real Sociedad in the race for the final Champions League spot and keeps Villarreal, for whom Tomas Pina opened the scoring, a further point behind them. Villarreal had Gabriel Paulista sent off midway through the second half, receiving his first yellow card for handball, which led to the spot-kick which was saved by Sergio Asenjo and seeing red after fouling Aduriz. Meanwhile Real Sociedad overcame Valencia 1-0 at Anoeta, a 61st-minute goal from Imanol Agirretxe deciding a game of very few chances.

Sevilla produced the perfect response to their Europa League loss to city-rivals Real Betis with a convincing 4-1 win over Real Valladolid that boosts their hopes of a top-four finish. Sevilla’s league form has improved significantly after a shaky start and could yet see them playing Champions League football next season, although Athletic and La Real remain favourites to do so ahead of Unai Emery’s men. A brace from Kevin Gameiro including a penalty, plus further goals from Ivan Rakitic – another penalty – and Diogo Figueiras earned them victory and extended their winning streak in La Liga to four matches. Javi Guerra grabbed a late consolation for Valladolid.

Celta Vigo took a big step towards securing their survival with a narrow but vital 1-0 victory at Levante. Nolito scored the only goal of the game after 19 minutes and Celta were fortunate not to lose their lead in the second half, with Levante’s David Barral missing a penalty and then having a shot blocked on the line by Celta goalkeeper Yoel Rodriguez.

Programming note: For viewers in the United States, La Liga games (including this Sunday’s el Clasico) 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.

Getafe let the lead slip three times as they were held 3-3 by 10-man Granada in an entertaining game at the Coliseum Alfonso Perez. Playing under new coach Cosmin Contra, Getafe looked as if they would end a winless streak stretching back to November when they went ahead first through Ciprian Marica, then Lisandro Lopez and finally Angel Lafita. However Granada, who had Manuel Iturra sent off, responded on each occasion and a brace from Youssef El Arabi and one from Ivan Riki secured a draw which keeps them three points above their opponents.

Rayo Vallecano climbed out of the relegation zone by comfortably beating fellow strugglers Almeria 3-1 to register their third straight league win. Alberto Bueno gave Rayo the lead on 37 minutes and Joaquin Larrivey extended the advantage 20 minutes later. Fernando Soriano gave Almeria a brief glimmer of hope with a powerful finish, but Larrivey struck again to secure another vital victory for Paco Jemez’s side.

Bottom club Real Betis claimed a much-needed point from a goalless draw against Elche at the Martinez Valero. Fran Escriba’s side had the better of the chance to force an opener in the first half but their opponents gave as good as they got. The draw extended Betis’ unbeaten run to five games in all competitions, leaving them nine points from safety, while the point moves the hosts up one place to 13th.