Fresh from his two goals against FC Copenhagen in the Champions League on Wednesday, the Argentina forward broke basement side Zaragoza's stubborn resistance with a clinical finish in the 42nd minute at the Romareda.

Spain striker David Villa, playing against his former club, took out three defenders with a surging run and played the ball into space for Messi to send a low shot past keeper Toni Doblas.

Zaragoza's Leonardo Ponzio was shown a straight red card two minutes after the break when he appeared to catch Daniel Alves in the head with a flailing arm before Messi took his tally for the season to five in six league matches in the 66th.

Barca's Seydou Keita and Andres Iniesta had efforts on goal and the ball eventually fell to World Player of the Year Messi just inside the penalty area and he lashed it into the net.

Villa almost made it three when his swerving shot hit the post in the 87th. Barca now have 19 points from eight matches while Zaragoza remain rooted to the bottom with just three.