Two more for Messi as Barcelona march on
World Player of the Year Messi took his league tally for the season to 17 with a pair of beautifully executed finishes as unbeaten Barca moved on to 34 points from 12 matches.
Real Madrid closed to within two of their city rivals when they crushed visiting Athletic Bilbao 5-1 in Saturday's late kickoff.
After Jon Aurtenetxe's early own goal, Karim Benzema, Sergio Ramos, Mesut Ozil and Sami Khedira were on target for Real as Jose Mourinho's side continued their recovery from a poor start to their title defence with a seventh win in eight games.
Real have now put 19 goals past Bilbao in their last four league meetings at the Bernabeu and the big surprise of the night was that Cristiano Ronaldo failed to add to his 12 La Liga goals this term.
The former Manchester United forward returned to action after suffering a gash above his left eye in last weekend's 2-1 win at Levante that forced his withdrawal from the Portugal squad to play in Gabon midweek.
Messi, who also netted a hat-trick at Deportivo La Coruna last month, opened the scoring in the 16th minute at the Nou Camp when he picked up Jordi Alba's pass and clipped the ball into the bottom corner.
Zaragoza, who haven't won at Barca in almost half a century, pulled a goal back eight minutes later when a Francisco Montanes shot took a slight deflection off Carles Puyol, back in central defence after injury, and flew past Victor Valdes.
Cameroon midfielder Song, who joined from Arsenal in the close season, thumped a Messi pull-back through a crowd of players into the net to restore Barca's lead in the 28th minute and Messi curled in his second to kill off the game on the hour.
It was his 78th goal of 2012 for club and country - 66 for Barca and 12 for Argentina - and he is closing in on the record for a calendar year of 85 set by German Gerd Muller in 1972.
Barca, who play at Spartak Moscow in the Champions League on Tuesday, have dropped points only once in La Liga this term, a 2-2 draw at home to Real.
Saturday's win means new coach Tito Vilanova, who took over from Pep Guardiola at the end of last season, is the first to lead a side to 11 wins in their opening 12 La Liga matches since Radomir Antic achieved the feat with Real in 1991/92.
"The players made a big effort and you noticed they were tired after long trips to play with their national teams," Vilanova told a news conference.
"Leo is decisive and the great teams have great players, but he doesn't win games on his own," he added of Messi.
Malaga extended their winless run in La Liga to three matches when they were held to a 0-0 draw at struggling Osasuna.
Roberto Soldado's 89th-minute penalty gave erratic Valencia a much-needed 2-1 success at home to Espanyol, who had Hector Moreno and Sergio Garcia sent off for protesting the referee's decision to award the spot-kick for a Moreno handball.
Jonathan Viera ran onto a loose ball and side-footed past Cristian Alvarez to put Valencia ahead in the 16th minute in an ill-tempered match at the Mestalla, which as well as the two straight reds saw 11 yellow cards.
Samuele Longo scooped the ball over Diego Alves from close range to level 15 minutes later.
Valencia are sixth on 18 points, while Espanyol slip below Osasuna to the bottom of the table, making it increasingly likely coach Mauricio Pochettino will lose his job.