Sevilla have recorded a 2-1 win over rivals Real Betis to win the 127th Seville derby and climb into fourth spot on the La Liga table.
Luis Ocampos' fifth goal of the season gave the visitors a 13th-minute lead but Betis levelled in the closing seconds of the first half when Loren Moron volleyed home from close range.
Sevilla regained their advantage 10 minutes after the break, midfielder Ever Banega slipping in Luuk De Jong for the Dutch striker to rifle into the roof of the net, and Julen Lopetegui's men held on to it to move above Real Sociedad.
Alvaro Morata scored for the sixth successive game as Atletico Madrid rose to third - a point behind top two Barcelona and Real Madrid, albeit having played a game more - by beating Espanyol 3-1.
Sergei Darder gave Espanyol a 38th-minute lead against the run of play, but Angel Correa equalised on the stroke of halftime with a glancing header.
Morata fired Atletico ahead after 58 minutes and Koke struck in stoppage time to give Diego Simeone's side only their second win in seven league games.
Ander Capa's 88th-minute volley gave Athletic Bilbao a 2-1 victory over Levante at San Mames.
Sergio Postigo put the visitors ahead just before the break, but Capa set up Iker Muniain's 57th-minute equaliser before striking the winner from outside the box.
Real Mallorca converted two penalties in a 3-1 home win against Villarreal.
Lago Junior opened the scoring after 13 minutes when Vicente Iborra brought down Takefusa Kubo and goalkeeper Sergio Asenso conceded a second penalty.
Dani Rodriguez took over the spot-kick duties to give Mallorca a 2-0 lead after 23 minutes.
Santi Cazorla halved the deficit with the third penalty of the game four minutes after the restart, but Kubo replied swiftly to settle matters.
Getafe were denied a third straight win as visitors Osasuna held them to a nil-all draw in a game of few chances, but the point was still enough for them to jump two places up to seventh.