Barcelona went back atop the Spanish Liga by beating historic rivals Real Madrid in a tense but high-quality "Clasico".
Supersub Zlatan Ibrahimovic on Sunday scored the crucial goal for Barca, who had Sergio Busquets sent off 27 minutes from time.
Real dominated the first half but lost penetration when Cristiano Ronaldo limped off 25 minutes from the end. Barca defenders Carles Puyol and Gerard Pique were imperious, keeping the white attack at bay.
Lassana Diarra was sent off right at the end, just as Real were losing hope of an equaliser.
A capacity 98,000 crowd in the Camp Nou cheered Barca to a victory that was followed across Planet Football, with more than 120 countries taking the live television coverage.
The tight win leaves Barca with 30 points from 12 games, two points more than Real.
Sevilla are third on 26 and Valencia fourth on 25.
"I am really happy," Ibrahimovic said in a euphoric mix of Spanish and Italian. "To score this goal was just fantastic for me."
Barca coach Josep Guardiola said: "To beat Madrid has a lot of merit, because they are an excellent team. ... Player for player, their level is very high."
He added that "the fans also like to see us win like this, with character and effort."
Guardiola gave out special praise to veteran captain Puyol, calling him "impeccable, as if he was 20 years old".
Real goalkeeper Iker Casillas said: "A draw would have been a fairer result, given the chances that we had."
Manuel Pellegrini, the Real coach, went even further than Casillas, raising eyebrows by claiming: "We were superior to them in everything, except in scoring. ... The result does not reflect how the game went."
Barca started with Ibrahimovic on the bench because of his thigh strain. Real, in contrast, started with Cristiano Ronaldo despite his long injury lay-off.
The Portuguese winger did not look completely fit, yet he almost silenced the Camp Nou in the 20th minute with a low drive that Barca keeper Valdes kept out with his right foot.
In the 52nd minute, Guardiola brought on Ibrahimovic for the ineffective Thierry Henry -- and was immediately rewarded with the only goal.
In the 57th minute, Dani Alves found Ibrahimovic with a precise, long centre, and the unmarked Swede calmly volleyed home with his left foot.
Six minutes later, Busquets foolishly picked up a second yellow card for handball. A man down, Barca were forced to play on the break.
Even so, Messi -- turning in another dull display -- almost made it 2-0 right at the death, only to be foiled by Casillas.
Then Diarra was sent off -- and Real were looking at their second league defeat of the season.
Earlier Sunday, Deportivo Coruna had moved up to fifth with a tight 1-0 win at lowly Racing Santander.
Tall defender Alberto Lopo grabbed the only goal with just 13 minutes left, poking the ball home after Riki had headed on an Andres Guardado corner.
Now second from bottom, Santander came forward for an equaliser, but the Deportivo defence, well marshalled by Lopo, managed to hold out.
The Galicians are now level on 25 points with fourth-place Valencia, who were held 1-1 by Mallorca on Saturday.
Mallorca are sixth on 21, and Sporting Gijon -- who beat Villarreal 1-0 on Saturday -- are seventh. Then come Athletic Bilbao, who took advantage of Almeria's defensive mistakes Sunday to score a 4-1 away win.
Sunday's other high scorers were Getafe, who thrashed Xerez 5-1 with a hat-trick from former Real Madrid youngster Roberto Soldado.
Osasuna, meanwhile, battled out a 1-0 win at Zaragoza on a goal from Javad Nekounam.
Sunday's other early game was a pulsating 3-3 draw between relegation strugglers Valladolid and Tenerife.
Three teams -- Xerez, Santander and Malaga -- are joint bottom with seven points. Then come Atletico Madrid on 10, and Tenerife and Valladolid on 11.
Sunday's late game was a 4-0 romp for Atletico at home to Espanyol, who had defender Facundo Roncaglia sent off.
In a rare night of satisfaction for the long-suffering Atletico fans, Sergio Aguero scored twice, and Diego Forlan and Maxi Rodriguez banged in the other goals.