Leaders Barcelona kept up their relentless pace at the top of La Liga with a 4-0 thrashing of city rivals Espanyol and 10-man Real Madrid needed two goals from Cristiano Ronaldo to see off Real Sociedad 4-3 on Sunday.

Argentina's Lionel Messi, favourite to collect a fourth world player of the year award on Monday, scored 91 goals for club and country in 2012 and started out where he left off with a clinical penalty at the Nou Camp.

A double from Pedro and another from Xavi completed the scoring as the unbeaten Catalans racked up their 17th victory in 18 games to move on to 52 points.

They are 11 points ahead of second-placed Atletico Madrid who were held to a 1-1 draw at Real Mallorca.

Atletico dominated but struggled without suspended top scorer Radamel Falcao until Raul Garcia bundled in from close range in the 72nd minute but Kevin Garcia grabbed a scrappy equaliser for the hosts three minutes from time.

Champions Real stayed 16 points adrift of Barca in third after a topsy-turvy game at the Bernabeu overshadowed by Jose Mourinho's unpopular decision to drop captain and goalkeeper Iker Casillas to the bench for the second consecutive game.

Reserve keeper Antonio Adan was sent off after only six minutes, however, and Spain's number one came on as a substitute to a huge ovation from home fans, though it was stand-in captain Ronaldo who secured the win with his second-half double.

Barca welcomed coach Tito Vilanova back to the dugout after a throat operation just over two weeks ago and he watched his side destroy Espanyol in the opening half hour at the Nou Camp.

"The best news from today was that we saw Tito back in the dugout," Barca sports director Andoni Zubizarreta told Spanish television, after Vilanova made a quicker than expected return to duties.

Vilanova thanked everyone for their messages of support at a news conference.

"The first half hour was spectacular," he said. "I didn't come out of the dugout because the team was doing well and my presence (on the touchline) wasn't necessary."