Cristiano Ronaldo grabbed his 54th goal of the season as Real Madrid moved closer to the Primera Division title with a 2-1 win at Barcelona that stretched their lead to seven points with just four games left.
Meanwhile, Victor Casadesus' first-half goal sealed a 1-0 victory for Real Mallorca against Real Zaragoza and Sporting Gijon defeated nine-man Rayo Vallecano.
Sami Khedira opened the scoring at Camp Nou for Real Madrid in the first half before Barcelona substitute Alexis Sanchez levelled.
But Portuguese star Ronaldo's 73rd-minute winner gave Madrid their first league win over the defending champions in four years and, barring a major stumble, ensured the title will return to the Santiago Bernabeu for the first time since 2008.
For coach Jose Mourinho, it was his first win at Camp Nou with Madrid and only his second triumph in 11 attempts against the Catalans.
Victor Casadesus' first-half header sealed a 1-0 victory for Real Mallorca and consigned Real Zaragoza to their third defeat in four games and left their survival hopes hanging by a thread.
The visitors had started brightly but Helder Postiga fired wastefully over after just two minutes before heading an even better chance from close range over 15 minutes later.
However, 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.
The win ensures Mallorca will definitely play top-flight football for the 16th consecutive season and they probably just about deserved the three points from a match in which neither side shone.
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 settled matters.
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.
The victory moved Javier Clemente's side to within five points of fourth-bottom Granada and 16th-spotted Villarreal ahead of their games on Sunday.
Sevilla and Levante missed the chance to move closer to their Champions League goals as they played out a 1-1 draw.
Levante could have moved level on points with fourth-place Malaga with a win, while Sevilla needed three points to move within three themselves.
Sevilla will be the more disappointed of the two sides as Alvaro Negredo had the opportunity to win it for the hosts but missed from the spot late on. Arouna Kone had earlier cancelled out a Negredo goal.