Lionel Messi scored his 50th and 51st goals of the season as Barcelona beat Villarreal to maintain the pressure on Real Madrid at the top of La Liga.

Barça had gone ahead after 21 minutes when Neymar tapped in from close range after a Messi pass and although Cedric Bakambu equalised, Messi put the home side back in front with a wonderful low strike from just outside the penalty area.

Luis Suárez made it three before a delightful panenka by Messi, his 35th La Liga goal of the season, wrapped up the points.

Madrid’s victory later on Saturday means Barcelona sit top thanks to a better head-to-head record but Real still have a game in hand.

Gonzalo Higuaín’s fine week got even better with an injury time goal in the Turin derby but could only salvage Juventus a point after Adem Ljajic’s free kick looked to be giving Torino a famous victory.

Juventus had remarkably won the previous 33 home matches and altough that run came to an end a sixth consecutive scudetto looks a certainty.

Higuaín’s 91st minute goal rescued a point and was the striker’s 32nd of the season.

Manchester City moved closer to confirming their place in next season’s Champions League with a thumping 5-0 win over Crystal Palace and Argentina defender Nicolás Otamendi got in on the act in stoppage time.

Goals by David Silva, Vincent Kompany, Kevin de Bruyne and Raheem Sterling had City cruising to all three points but Otamendi capped off an excellent performance with a powerful diving header in stoppage time.