Cristiano Ronaldo netted the winner as Real Madrid opened up a seven point gap over title rivals Barcelona with a 2-1 win at the Nou Camp.
Real defended well after Sami Khedira had given them the lead following an error from Victor Valdes. As a corner came in, Pepe's header was palmed out into the danger zone and Khedira swooped to hack home as Carles Puyol could not clear.
Barcelona attacked and missed two great chances when Xavi and then youngster Cristian Tello got a sight of goal, but equalised in the 70th minute as substitute Alexis Sanchez bundled the ball home from close range.
It was 1-1 for only a few minutes as Mesut Ozil released Ronaldo who turned on the afterburners to get away from the defenders and slot past Valdes for his 54th of the season.
Sporting Gijon boosted their survival hopes with a vital 2-1 victory over nine-man Rayo Vallecano thanks to Mate Bilic's superb late free-kick.
Gaston Sangoy gave the hosts a deserved lead after 17 minutes and, although Mikel Labaka equalised six minutes into the second half, substitute Bilic's fine strike 12 minutes from time restored their lead. The winner arrived moments after Labaka had been sent off for a bad foul on Bilic, with Jose Manuel Casado also receiving his marching orders three minutes from the end for a second bookable offence.
Victor Casadesus' first-half header consigned Real Zaragoza to a 1-0 reverse at Mallorca - their third defeat in four games - and left their Primera Division survival hopes hanging by a thread.
Mallorca's set-pieces troubled Zaragoza all day and Victor headed in unchallenged from Chori Castro's corner just after the half-hour. Manolo Jimenez's men had more of the ball after the break but could not find a way through a well-organised Mallorca back line. They remained five points from safety with only four games remaining.