Came off his line to intercept a long ball forward early on and also made two stunning saves to deny Alexis, but he gifted Barca an equaliser as he palmed the ball straight to Puyol following a corner and was beaten at his near post by Messi's fine second.
Made a great sliding tackle to stop Pedro in his tracks which had to be just right as it was in the penalty area, but was given problems by the pace of the Tenerife-born forward on the wing.
Worked hard and put in some important tackles, but was turned easily by Alexis in the area after an hour and will have been relieved to see Roberto save the Chilean's shot. Gave away the penalty as well, although the decision looked very harsh.
Was a decent outlet for Zaragoza and linked up well at times with Aranda and Lafita. Shot just over the bar from an angle in the second half after a good combination with Aranda. Eventually tired and was replaced.
Worked incredibly hard in central midfield and offered a decent shield to his defenders. His distribution could have been better, though.
Struggled to deal with the pace of Alexis down the flank and was booked twice in 10 minutes for pulling back the Chilean. Both were fouls but the referee could have been more lenient.
Won the first-half penalty although he looked there appeared to be minimal contact with Victor Valdes. Headed the rebound onto the crossbar after Aranda had seen his shot saved. Made a good run and cross into the area in the second half. Lively throughout.
Didn't do much going forward and was spent a lot of his time tracking back. Didn't see enough of the ball in an attacking sense and was booked for clipping Mascherano's heels.
Should have done a lot better with an early shot when he was alone in the area, but made terrible contact and sliced his effort. Looked lively other than that but faded as the game wore on.
Showed some lovely skill to beat a rival and play an excellent crossfield ball early in the first half, but his penalty was poor and Valdes saved comfortably. Gave Zaragoza the lead with a header after Valdes had saved his shot, but penalty miss was costly.
Gave away the penalty although he looked a little unfortunate as Lafita made the most of it. Redeemed himself with a fine save from Aranda's spot kick. Unlucky with the goal after saving well from the striker. A decent performance overall.
Did well in the left-back position and was a useful outlet going forward as well. Should have set up Cesc for an easy header or shot himself when put through by Messi in the second half, though.
Unlucky with the Zaragoza goal as he slid across but was unable to keep out Aranda's header. Popped up at the other end with the vital equaliser when Barca were labouring and a goal down. Solid overall and fully committed as ever.
Hit a free-kick straight into the wall early on, but attacked well down his side of the pitch and got back to make one crucial intervention in the second half. Tired as the game wore on and was replaced by Montoya midway through the second period.
His late goal will give him confidence because he has looked poor for much of this season and did again. Worked hard, though, and it paid off as he latched on to Messi's ball and beat Roberto deep into added time. Decision making and execution had been poor prior to that.
Did well to race back and block a Lafita cross following a quick Zaragoza counter in the first half, and looked solid overall alongside Puyol. Brought the ball out of defence in the absence of Pique but his passing was sometimes sloppy.
Another who hasn't quite convinced of late, the youngster struggled to stamp his impression on the game against a hard-working Zaragoza side. Almost got through a couple of times on goal and saw his close-range effort saved by Roberto late on.
Worked hard in central midfield and he had to as Zaragoza hassled and hustled the visitors. Guilty of losing possession at times and could have given away a penalty when he handled in the area, although that would have been harsh. Replaced by Keita early in second half.
Not his best game and he still looks well short of his early-season form. Provided a goal threat, though, and was just inches away from connecting with a header from Adriano's cross in the second half. Worked hard in a much-changed midfield.
Not his finest game but he was there, as always, when Barca needed him as he struck an excellent first goal after turning his marker and then scored his 60th of the season from the penalty spot. Was a constant threat and his ball set up Pedro for the fourth in added time.
Provided a decent outlet, was full of running and he provoked the dismissal of Abraham by forcing two fouls from the Zaragoza man which led to first-half bookings. Missed two great chances, though, before theatrically winning a late penalty. The good, the bad and the ugly.
- 25 L. Franco
Came on with 25 minutes left and made one crucial intervention to deny Messi in the area.
- 8 Edu Oriol
Came on for the last eight minutes but had little impact.
- 15 T. Dujmović
- 16 P. Barrera
Came on with 25 minutes remaining and claimed a penalty late in the game when he went down in the area. Looked nothing, however.
- 13 Pinto
Came on to replace Dani Alves with just over 20 minutes left and looked assured in defence for the most part and confident going forward.
- 8 Iniesta
Came on for Keita nine minutes into the second half and Barca looked more assured in central midfield with him in the fray. Passed the ball neatly and made some key interceptions. Was the cool head that Barca needed when they were not playing very well.
A late replacement for Cesc as the time ticked away.
- 23 Cuenca
- 37 Tello