(CNN) -- Barcelona took a giant stride towards retaining their Spanish league title with a 2-0 win over arch-rivals Real Madrid in Saturday's 'El Clasico' at the Santiago Bernabeu to go three points clear at the top of La Liga.
Lionel Messi continued his remarkable scoring streak with his 40th of the season and 27th in the league in the first half with Pedro Rodriquez adding the second after the break.
The devastating defeat ended Real's 12-match winning streak in La Liga and was their first at home at a decisive stage of the season with seven games to go.
Messi broke the deadlock just after the half-hour mark as he was set up by a clever chipped pass from the irrepressible Xavi and turned Raul Albiol to beat Iker Casillas with ease.
Messi's predecessor as World Footballer of the Year, Cristiano Ronaldo, could make little impression for Real who were struggling to create chances in front of their home fans.
A Marcelo shot just after the break finally gave Victor Valdes some work in the Barca goal, but last year's triple winners were soon two-up with Xavi again the creator.
His pin-point pass found Pedro in the clear and his cleverly beat the advancing Casillas for the decisive second.
It finally sparked a Real reaction and Valdes had to save smartly from Rafael Van der Vaart before Ronaldo twice tested him.
With Real pushing forward it was almost inevitable that Barca would have opportunities on the break and Messi wasted a chance when put through with only Casillas to beat, the Spanish international goalkeeper making a fine save.
In the 77th minute, Casillas again came to the rescue after Xavi played in Messi again.
Raul had the ball in the net for Real in the final frantic moments but it was chalked off for a handball by Karim Benzema and Barca held on for a deserved three points to cap a superb week which has seen them reach the Champions League semifinals where they will face Inter Milan.
Inter were also in action in the Italian League on Saturday, held to a disappointing 2-2 draw by Fiorentina.
Keirrison put Fiorentina ahead in the 11th minute but Jose Mourinho's men then took apparent control through Diego Milito (75) and Samuel Eto'o (81).
But Per Kroldrup equalized for the Viola a minute later to leave Inter two points clear of Roma who can top them on Sunday with a win against Atalanta.