Messi & Ronaldo steal Saturday headlines
Argentina's Messi, who beat Ronaldo in the voting to lift the Ballon d'Or during the week, scored twice for leaders Barcelona in a 3-1 victory at Deportivo La Coruna.
Portugal's Ronaldo won and missed a penalty, scored a goal and was then sent off as Real Madrid came back to beat visiting Almeria 4-2.
The champions are top with 36 points from 14 games, five ahead of second-placed Real who have played a game less.
Messi gave Barca a deserved lead at the Riazor scoring from the edge of the area after 27 minutes.
But Depor levelled when a punt from the goalkeeper was inadvertently flicked on by Sergio Busquets and Adrian headed past Victor Valdes before half-time.
Substitute Pedro crossed for an unopposed Messi to head Barca back in front after a well-worked move in the 80th and in-form Zlatan Ibrahimovic rounded off the scoring at the end.
The Swedish striker netted his 10th of the campaign, and third in three matches this week.
Real looked to be cruising at the Bernabeu when Sergio Ramos headed them in front after 31 minutes but the visitors netted twice in four minutes midway through the second half.
Gonzalo Higuain levelled for Real in the 74th before Ronaldo flung himself over Almeria goalkeeper Diego Alves to win a disputed penalty in the 81st.
Alves saved the spot kick but Karim Benzema converted the rebound and Ronaldo made it 4-2 two minutes later, picking up a yellow card as he celebrated by taking his shirt off.
In the last minute, Ronaldo kicked Almeria's Juanma Ortiz after a tussle for the ball, earning his second yellow card and was dismissed.
Earlier, third-placed Sevilla were held 1-1 at home by 10-man Real Valladolid, bringing their La Liga title credentials into question for the second week in a row.
Manolo Jimenez's side are on 27 points, having now dropped four points at the Sanchez Pizjuan in consecutive home games.
After lowly Malaga held them to a 2-2 draw last weekend, it was Valladolid's Angolan striker Manucho who put the visitors ahead with a superb diving header in the 33rd on Saturday.
Valladolid had Borja Valero harshly sent off for a late tackle after 39 minutes and just before the break Sevilla levelled when Luis Fabiano netted from the penalty spot.
But the hosts were unable to make the extra man count.
Diego Forlan and Sergio Aguero fired Atletico Madrid to a 2-0 win at bottom club Xerez for their first away win of the campaign and their second victory in a row.
Improving Atletico, who finished with 10 men after Alvaro Dominguez was sent off late on, climbed to 11th with 13 points.