Javier Hernandez once again spared Real Madrid's blushes as his brace in a 4-2 win at Celta Vigo on Sunday kept the club within two points of Barcelona, while Sevilla moved fourth with victory against Rayo Vallecano.
The Mexican scored the winner in Real's 1-0 defeat of Atletico Madrid in the UEFA Champions League on Wednesday and he proved integral again as Carlo Ancelotti's men laboured at Balaidos.
After an open start resulted in early goals for Nolito and Toni Kroos, Hernandez, again playing in place of the injured Karim Benzema, put the visitors ahead with 24 minutes gone.
Santi Mina scored his fifth in three games to level the score for a second time, but James Rodriguez's deflected effort on the stroke of half-time restored the capital club's lead.
Although the second half proved a similarly tough affair for Real, Hernandez sealed the points with 21 minutes to go, keeping the visitors within touching distance of Barca, who beat Espanyol on Saturday.
The duel for the final UEFA Champions League place remains as intriguing as ever, as Sevilla beat Rayo Vallecano 2-0 at the Ramon Sanchez Pizjuan to go fourth, a point above Valencia who host strugglers Granada on Monday.
First-half goals from Vicente Iborra and Daniel Carrico did the damage, with the latter dedicating his effort to team-mate Nico Pareja, who suffered a serious knee injury in Thursday's dramatic 2-2 draw at Zenit in the Europa League.
At the bottom of the table, Almeria hoisted themselves out of the relegation zone with a 2-0 win at home to fellow strugglers Eibar, one of the two sides they leapt above as a result.
The other, Deportivo La Coruna, held seventh-placed Malaga to a 1-1 draw at La Rosaleda, although that commendable result failed to stop them slipping back into the drop zone.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.