Karim Benzema's strike ensured Real Madrid got back to winning ways against Mallorca and closed the gap to La Liga leaders Barcelona to four points.
• Saturday's round-up
But it was a far from convincing display from Jose Mourinho's side, who were desperate to bounce back after last weekend's disappointing draw with Almeria and Barca's comfortable win over Racing Santander on Saturday.
Benzema grabbed the game's only goal on the hour mark, firing a left-foot shot into the net from the edge of the penalty area. But the visitors had excellent chances before and after the French striker broke the deadlock.
Emilio Nsue hit the post after 13 minutes, and though Real had a host of chances to make the game safe after Benzema's effort, the home side were grateful to goalkeeper Iker Casillas who saved from Pierre Webo in injury time.
Villarreal climbed to third place with a come-from-behind 2-1 win over Real Sociedad.
Mikel Aranburu had given Sociedad the lead on the half-hour mark, but Giuseppe Rossi scored either side of half-time to ensure the points stayed at El Madrigal.
Sporting Gijon put some ground between themselves and the relegation zone by upsetting lacklustre Atletico Madrid 1-0 at El Molinon.
David Barral scored the only goal of a grim encounter in which only Juan Valera's injury-time header threatened to change matters.
Almeria continued their recent revival with a 3-2 victory over Osasuna to move off the foot of the table.
Carlos Garcia Badias and Leonardo Ulloa put them ahead, before Carlos Aranda gave Osasuna hope, only for Ulloa to notch his second after the break. Dejan Lekic did respond again for the visitors in stoppage time, but it was too little, too late.
Espanyol boosted their hopes of a place in next season's Champions League as they came from a goal down to beat Getafe 3-1 in Madrid.
The Barcelona-based side found themselves trailing to Miku's early strike, but hit back seven minutes into the second half through Luis Garcia and wrapped up a third straight league win thanks to goals from Jose Callejon and Sergio Garcia.
Real Zaragoza beat Deportivo La Coruna 1-0 to secure a third successive win at La Romareda and move out of the relegation zone for the first time since the beginning of the season.
Javier Aguirre's side secured a third vital triumph at La Romareda, again by a narrow scoreline, thanks to a goal by Said Boutahar eight minutes before the interval. The strike was somewhat fortunate because the Dutchman's free-kick took a wicked deflection and wrong-footed Deportivo keeper Daniel Aranzubia on its way to the net.