Rayo Vallecano produced a stunning second-half comeback to beat ten-man Celta Vigo 3-2 at Vallecas.
• Real Betis 1-2 Granada
Iago Aspas had fired the visitors into a two-goal lead with two fine finishes in the first half, but the game swung in Rayo's favour five minutes before half-time when defender Gustavo Cabral was shown a second yellow card.
Leo Baptistao and Tito then headed the hosts back on level terms after the break and Piti sealed the comeback with a penalty eight minutes from time. Defeat means that Celta have now lost all six of their away league games this season.
Helder Postiga scored twice as Real Zaragoza roared back from two goals down to beat 10-man Deportivo la Coruna 5-3 in a crazy game at La Romareda.
The visitors had gone into an early 2-0 lead thanks to goals from Bruno Gama and Riki, but Apono brought Zaragoza back into the game from the penalty spot before half-time.
Pizzi was then shown a second yellow card for diving four minutes into the second period, and the hosts made their man advantage pay in spectacular style as Paco Montanes and Alvaro Gonzalez put them 3-2 in front before Postiga bulleted in two headers from excellent crosses by Victor Rodriguez.
Rodolfo Bodipo got one back for Depor in the last attack of the game but it mattered little, as Zaragoza moved into the top half of the table with their fourth victory in five games.
Bottom side Osasuna ended a run of five straight away defeats in emphatic style with a 3-0 win against fellow strugglers Espanyol.
Osasuna had just one win from their opening 10 league matches before this game and had lost all of their matches on their travels, yet they never looked back after taking the lead through Alvaro Cejudo midway through the first half.
The 29-year-old former Las Palmas midfielder then teed up Kike Sola in the 63rd minute before Manuel Omwu added further gloss to the scoreline 12 minutes from time.
Real Sociedad ended a run of four matches without a win in the Primera Division and moved out of the bottom three with a 2-1 victory at Malaga.
Carlos Vela gave the visitors the lead in the opening minute and, although that was cancelled out by Javier Saviola, Xabi Prieto scored the decisive goal in the second half.
Defeat leaves Malaga in fifth place, 10 points behind leaders Barcelona..
Information from the Press Association was used in this report.