Cristiano Ronaldo grabbed his 54th goal of the season as Real Madrid moved closer to the La Liga title with a 2-1 win at Barcelona that stretched their lead to seven points with just four games left. (Matchcentre)
Sami Khedira opened the scoring at Camp Nou for Real Madrid in the first half before 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. (Also see: Guardiola congratulates 'champions' Madrid)
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.
Afterwards he continued his policy of not speaking to the press about league games but his assistant Aitor Karanka underlined the squad's delight.
"We've worked well as a group all season and we're very happy with the result. But there is still work to do in the league and we'll look to the Bayern game (in the Champions League) on Wednesday now," he said.
Madrid trail 2-1 to the Germans in their Champions League semi-final ahead of the second leg.
Barcelona coach Pep Guardiola admitted that Madrid can start their title party straightaway.
"We have to congratulate Madrid for their win and the title that they have also won tonight," he said.
"We created chances but it was just not our night, sometimes that happens against such a good opponent like Madrid."
Mourinho named an unchanged Madrid side to that which lost 2-1 at Bayern Munich in the Champions League semi-final first leg on Tuesday.
For Barca, Guardiola replaced Cesc Fabregas and Sanchez -- who both started the 1-0 defeat at Chelsea on Wednesday -- with Cristian Tello and Thiago Alcantara, while continuing to leave Gerard Pique on the bench.
Madrid had the first chance when Ronaldo powerfully headed a corner that Victor Valdes tipped over the bar on four minutes.
Two minutes later, Madrid keeper Iker Casillas had to be quick to block at the feet of Dani Alves at the other end.
Then, against the run of play, Madrid went ahead on 17 minutes when Khedira stabbed home from close range after Valdes could only block a Pepe header from a corner.
With that goal, the 108th of their league campaign, Madrid became the highest-scoring team in a single season in Spanish football history, beating the record previously held by the Madrid side of the 1989-90 season.
Tello tried his luck from distance and then Messi played in Xavi with a delightful ball from which the Spanish midfielder should have equalised.
However, Madrid, playing with two compact defensive lines, were content to sit back and counter-attack and went into the interval with no further problems against a strangely subdued Barca.
The second period began in the same manner and as the hour mark came and went, Barca had had only two more wide efforts from Tello and lacked any cutting edge in attack.
Xavi went close from long-range on 68 minutes and then was immediately substituted for Sanchez as Guardiola looked to change things.
Within two minutes they were level as the Chilean substitute finished at the second attempt from close range after Casillas blocked a Tello drive set up by Iniesta's clever, wrong-footing flick.
But Madrid's reaction was instant, with Ronaldo rounding Valdes after running onto a Mesut Ozil pass and putting the leaders ahead again with his 42nd league goal of the season.
Barca were shell-shocked and it was Madrid, through Karim Benzema and Ronaldo, who came closer to adding to their tally in the dying moments.