The tight battle for a place in Europe continued as Osasuna closed the gap on Levante, while Malaga strengthened their hold on fourth.
Van Nistelrooy and Demichelis on target
The tight battle for a place in Europe continued in the Primera Liga as Osasuna closed the gap on Levante, while Malaga won at Espanyol to strenghthen their chances of qualifying for the UEFA Champions League.
Elsewhere, struggling Real Zaragoza boosted their survival hopes with a victory over Atletico Madrid, Sporting Gijon grabbed a dramatically late point at Athletic Bilbao, and Racing Santander also earned a draw against Real Betis.
But Villarreal went even better and addressed their recently wretched form with a victory at Rayo Vallecano.
Goals in each half from Raul Garcia and Nino moved Osasuna
to within a point of fourth-placed Levante
as they enhanced their chances of playing European football next season with a 2-0 win at Ciutat de Valencia.
Garcia put the visitors in front with a wonderful finish from Nino's flick-on after 16 minutes before Andres Fernandez was called into action on numerous occasions to keep his side in front, most notably saving Xavi Torres' downward header and from Arouna Kone when the Ivorian was through one-on-one with the goalkeeper.
And Osasuna took advantage of the hosts' profligacy as Garcia and Nino again combined with 11 minutes remaining for the latter to score his first goal since October.
Two goals in two minutes from Ruud Van Nistelrooy and Martin Demichelis saw Malaga
produce a fine second-half comeback to take all three points in a 2-1 win away at Espanyol
Philippe Coutinho had continued his great goalscoring form of late to put the hosts ahead with a clever free-kick midway through the first half.
The visitors may have considered themselves a bit hard done by to go in behind at the break after Enzo Maresca and Isco struck the post, but they made amends in the second half as Van Nistelrooy scored with his first touch after coming on as a substitute 15 minutes from time.
And two minutes later, Malaga grabbed the winner as Kiko Casilla could only parry Salomon Rondon's header into the path of Demichelis and he swept the ball into the net from close range.
At the foot of the table, the bottom four sides all picked up points on Sunday, but it was perhaps Villarreal's
2-0 victory at Rayo Vallecano
that could prove the most decisive.
Strikes from Marco Ruben (29) and Angel Lopez (85) earned the Yellow Submarine their first win in seven games and put a six-point gap between the positions of safety in La Liga and the relegation zone.
That Villarreal victory, which also saw Ruben miss a 55th minute penalty, will have come as a big blow to bottom three Real Zaragoza, Sporting Gijon and Racing Santander, who all picked up creditable points.
Alberto Lora struck what could prove to be a precious equaliser with 43 seconds left of regulation time as Sporting Gijon
grabbed a 1-1 draw at Athletic Bilbao
Stranded in the relegation zone before kick-off, Javier Clemente's men looked in deeper trouble when their Basque hosts went ahead through Oscar de Marcos, having already missed a penalty through Iker Muniain.
But the Rojiblancos stayed in the game and, although Lora's strike did not get them a deficit-eroding win, it means they remain just about in touch heading into the closing stages of the campaign.
Apono scored a penalty deep into stoppage time to hand Real Zaragoza
a 1-0 win over Atletico Madrid
and a vital three points in their bid to avoid relegation.
In a game short of clear-cut chances, Atletico came closest to breaking the deadlock in the first period as Adrian Lopez and Radamel Falcao hit the woodwork in the same attack midway through the half.
Falcao came close again after the break as his close-range header drifted wide, but the game seemed destined for a draw until Diego Godin's naive challenge on Helder Postiga gave Apono the chance to win it in the 93rd minute - which he duly did by smashing the ball past Thibaut Courtois.
Christian Stuani's 79th minute equaliser helped Racing Santander
end their four-match losing streak in a 1-1 draw with Real Betis
but did little to ease the Cantabrian side's growing relegation worries.
Betis put themselves on course for their first win in five matches when Roque Santa Cruz fired them ahead in the 18th minute, but for the second successive match they were undone by a late leveller.
On Thursday they conceded a 94th minute equaliser to draw 1-1 against Espanyol, and although Stuani's goal on Sunday was not as agonising as that one, it still denied 15th-placed Betis two valuable points in their fight against the drop.
The situation is looking even more drastic for Racing, though.
With Villarreal winning on Sunday, third-bottom Racing are now six points adrift of safety, while bottom side Real Zaragoza look to be getting into form at just the right time with 10 points from their last five games to move level with Santander and second-bottom Gijon.