MADRID, Jan 29 (Reuters) - Barcelona returned to winning ways on Sunday with a 3-0 victory at second from bottom Real Mallorca to go 12 points clear at the top of the Primera Liga. Real Madrid moved up to third after beating Celta Vigo 2-1 away.
Barcelona have 52 points from 21 games. Valencia are on 40 with Real on 39.
Barecelona suffered their first defeat in 25 games when they lost 4-2 at Real Zaragoza in the King's Cup on Thursday.
But the champions bounced back to make it 14 consecutive wins in the league against a robust Mallorca after Ludovic Giuly opened the scoring six minutes before the break.
Argentine striker Lionel Messi came off the bench to make sure of the points with two goals after Mallorca had defender Eduardo Tuzzio sent off in the 72nd minute.
Second-placed Valencia scored twice in the last seven minutes to salvage a 2-2 draw at home to Zaragoza.
Zaragoza took control with goals from Sergio Garcia and Ewerthon but the dismissal of David Generelo and the introduction of Valencia striker Patrick Kluivert in the second half turned the game.
The Dutchman pulled a goal back in the 83rd minute and set up the second, a header by Argentine playmaker Pablo Aimar six minutes later.
Real's game at Celta Vigo was an end-to-end encounter which could have gone either way.
Brazilian forward Robinho collected Julio Baptista's pass after 17 minutes to fire Real in front, but five minutes before the break Argentine defender Matias Lequi stooped to head Angel's cross into the net.
Robinho scampered clear on a swift counter-attack in the 57th minute to see his shot saved by Jose Manual Pinto, but Brazilian defender Cicinho followed up to score.
Both Pinto and Iker Casillas made important interventions with the Real keeper's save from David Silva's cross-cum-shot, that rebounded off the post and appeared to cross the line, vital to preventing an equaliser in the 68th minute.
Real are now unbeaten in the their last eight league and cup games.
Osasuna, also on 39 points, slipped down to fourth after suffering their first home league defeat this season, 2-0 against lowly Real Betis.
Sevilla climbed to fifth on 35 after defeating sixth-placed Villarreal 2-0.