(CNN) -- Cristiano Ronaldo scored two penalties as Real Madrid beat ten-man Athletic Bilbao 4-1 to maintain their five-point lead over arch rivals Barcelona at the top of the Spanish league.
The Portuguese striker fired home his 22nd and 23rd goals of the league season from 12 yards to help Real gets back to winning ways after their midweek defeat to Barca in the Spanish Cup.
Real fell behind against Bilbao when Fernando Llorente volleyed home Javi Martinez's cross but Brazilian defender Marcelo equalized 12 minutes later.
Llorente missed a great chance to restore his side's lead but he sliced wide with only Iker Casillas to beat. It would prove to be a costly error.
Ronaldo scored his first penalty after Kaka had been pulled to the floor in the penalty area by Ander Iturraspe and got his second 20 minutes later after Mesut Ozil was fouled by Oscar De Marcos, who was shown a red card.
Jose Callejon scored Real's fourth as he raced onto Gonzalo Higuaín's pass and fired into the net.
Earlier on Sunday, Lionel Messi's fifth hat-trick of the season sent Spanish and European champions Barcelona on their way to a 4-1 win at Malaga.
The Argentina striker got his first just after the half hour, heading home Adriano's cross before an Alexis Sanchez tap in made it 2-0.
Messi's next two goals were carbon copies as he burst through Malaga's defense before slotting home. Rondon grabbed a late consolation for Malaga.
A win for both Real and Barca was perfect preparation for the second leg of their Spanish Cup clash on Wednesday, with Barca leading 2-1 on aggregate.
Elsewhere in Spain, Valencia were held to a 1-1 draw by Osasuna while Mallorca won at Rayo Vallecano. Levante and Real Zaragoza drew 0-0.
In Italy, AC Milan kept the pressure on Serie A leaders Juventus with a 3-0 win at bottom club Novara. Swedish striker Zlatan Ibrahimovic netted twice while Brazilian striker Robinho scored the other.
Milan's city rivals Inter moved into fourth spot in the table after coming from behind to beat Lazio 2-1 at the San Siro. Tommaso Rocchi scored first for the visitors but goals from Diego Milto and Giampaolo Pazzini rescued Inter.
Udinese beat Catania 2-1, Palermo toppled Genoa 5-3 while the games between Bologna and Parma, Lecce and Chievo, Siena and Napoli, and Cagliari and Fiorentina all ended in draws.
In Germany, champions Borussia Dortmund thrashed Hamburg 5-1 to go level on points at the top of the table with Bayern Munich and Schalke.
Robert Lewandowski and Jakub Blaszczykowski both scored twice for Dortmund. In Sunday's other game Lars Bender scored the winner as Bayer Leverkusen beat Mainz 3-2.