Barcelona have moved top of La Liga after late 3-1 success over Real Zaragoza at Camp Nou.
The visitors scored with virtually their first attack with Gabriel Milito side-footing home from a right wing corner.
Barca were not behind for long with Ronaldinho converting Deco's corner with a back post header after 31 minutes.
The home side continued to press for that all-important winner, but were largely frustrated throughout the second half.
Things got heated late on when substitute Tiago Motta was dismissed for an apparent elbow on Diego Milito.
It was 10-a-side seconds later when goal-scoring Gabriel Milito was given a red card for hauling down Javier Saviola as the last man.
Just when it looked like Barca might be held, Ronaldo stepped up and stroked home a delightful free-kick from outside the box to forge ahead.
Ronaldinho was inches from netting his hat-trick when another free-kick struck the bar, although Saviola was on hand to head home the rebound with the last kick of the game.
Real Madrid emphasised their current form with an emphatic 4-1 success over Osasuna with Ruud van Nistelrooy in fine form.
The former Manchester United striker helped himself a first-half hat-trick, his second in La Liga this term after his trio against Levante.
It did not take long for the Dutch ace to get his name on the score-sheet after netting on 12 minutes before adding a second before the half hour mark.
Van Nistelrooy completed a fine hat-trick with a fine left-footed finish that got the better of Ricardo to sneak inside the near post.
Naldo did pull one back for Osasuna after the break, but van Nistelrooy had the last laugh with his fourth after 84 minutes.
Sevilla dropped two points on Sunday after being held to a goalless draw at Racing Santander.
Getafe's impressive season continued with Nacho's goal giving the side a 1-0 win over Real Mallorca.
Lowly Real Sociedad remain without a win after surrendering a one-goal lead to Espanyol.
Inigo Diaz De Cerio gave Sociedad the lead, but Luis Garcia's second half goal bagged a share of the spoils.
Gimnastic de Tarragona remain second from bottom after only securing a point in a 0-0 draw to Deportivo La Coruna.
Jesus Capi's injury time goal lifted Real Betis to a 2-1 home win over Levante.
Edu opened the scoring just six minutes in, but Riga Mustapha's effort after half-time levelled matters.
Juses Capi snatched the points late on, although there was still time for Alvaro to see red.
Celta Vigo suffered a surprise home defeat to Recreativo de Huelva on Sunday.
Goals from Florent Sinama-Pongolle and Nigerian Ikechukwe Uche put the visitors in control.
Antonio Guayre did pull one back, but Gabriel Tamas' second yellow sealed their fate.
Click below for match summaries:
Barcelona 3-1 Real Zaragoza
Celta Vigo 1-2 Recreativo Huelva
Getafe 1-0 Real Mallorca
Gimnastic de Tarragona 0-0 Deportivo La Coruna
Osasuna 1-4 Real Madrid
Racing Santander 0-0 Sevilla
Real Betis 2-1 Levante
Real Sociedad 1-1 Espanyol