David Silva produced a masterclass to help third place Real Sociedad beat Almeria 2-0 on Sunday and provisionally cut the gap on league leaders Barcelona and Real Madrid to six points.

Struggling Sevilla earned a crucial 2-1 win over Getafe to climb out of the relegation zone on goal difference, while Real Betis moved fourth with a 2-1 win at Rayo Vallecano.

Real Sociedad's veteran Spanish playmaker Silva, 37, capitalised on defensive confusion in Almeria's box to nip in and fire home the opener just after half-time.

Former Manchester City midfielder Silva had played a brilliant pass to put Take Kubo in down the right to start the move.

Alexander Sorloth drilled home his sixth league goal of the season five minutes later to extend La Real's lead at the Power Horse Stadium.

The Norwegian forward collected Mikel Merino's ball and cut into the area before beating Fernando Martinez at his near post.

Without the suspended Brais Mendez, Imanol Alguacil's side were not at their best but still managed to inflict promoted side Almeria's first home defeat since September, leaving them 14th.

Japan international Kubo impressed up front with Sorloth, continuing his own revival this season.

The victory leaves Alguacil's side high on confidence ahead of next weekend's Basque derby clash with Athletic Bilbao.

La Real have 32 points from 16 games, moving five clear of fifth place Atletico Madrid, who host leaders Barcelona later Sunday.

Jorge Sampaoli's Sevilla won for the first time in seven league games against Getafe thanks to goals from Marcos Acuna and Rafa Mir.

Borja Mayoral netted late on for Getafe to set up a tense finale but Sevilla held on to move 17th.

Real Betis climbed provisionally to fourth after a 2-1 win at Rayo Vallecano in an entertaining game.

The Andalusians took the lead when Rayo defender Alejandro Catana headed the ball against team-mate Ivan Balliu and it bounced into their own net.

Sergio Camello levelled after 20 minutes but Luis Henrique sent Betis ahead with a superb individual strike.

Izi Palazon lashed home for the hosts after the break but the goal was disallowed for offside, while Raul de Tomas made his second Rayo debut from the bench and missed a late chance to level.