Lionel Messi scored his 50th and 51st goals of the season as Barcelona beat Villarreal to temporarily move three points clear at the top of La Liga.
Real Madrid later restored parity with a 4-0 win over Tony Adams’ Granada.
Barca went ahead when Neymar finished off a fine team move by scoring from close range after Messi’s pass.
Villarreal levelled through Cedric Bakambu, but goals for Messi either side of Luis Suarez’s strike from a tight angle sealed Barcelona’s win.
It was Messi’s low 20-yard strike that put Barca back in front, with the Argentine then chipping a penalty after Jaume Costa’s handball for his 35th goal in La Liga this season.
Barcelona are top virtue of a better head-to-head record with Real, who have a game in hand.
Barcelona, aiming to win their third La Liga title in a row, have two more league matches left, while current European champions Real have three.
After Neymar’s opener, the hosts surprisingly conceded 11 minutes later when Pique tried to play offside just inside his own half and was caught out by Bakambu’s pace, with the striker calmly finishing.
The visitors, fifth in the table and aiming for Europa League qualification, should have gone ahead but former Tottenham striker Roberto Soldado headed wide when unmarked.
That proved crucial as Messi restored Barcelona’s lead four minutes later, just before half-time.
In the second half, the hosts went 3-1 ahead when Messi played in Suarez, who jinked past two players before shooting past Andres Fernandez.
Messi’s late penalty – the 108th La Liga goal Barcelona have scored this season – came after Costa was adjudged to have handled in his penalty area.
Race for La Liga – remaining fixtures
|Barcelona (84 points, played 36)||Real Madrid (84 points, played 35)|
|14 May: Las Palmas (a)||14 May: Sevilla (h)|
|21 May: Eibar (h)||17 May: Celta Vigo (a)|
|21 May: Malaga (a)|