|Real Madrid's James open the score against relegated Granada|
James Rodriguez put Zinedine Zidane’s side in charge in the third minute by bundling in Lucas Vazquez’s arrowed cross and then headed in a cross from forgotten man Fabio Coentrao to double their lead in the 11th, scoring for the fifth time in four games.
Alvaro Morata followed the Colombian’s early strikes with two goals of his own in the 30th and 35th to kill off Tony Adams’s sunken side and put Real level on 84 points with champions Barca.
“Every opponent gives you a difficult game but we started the game really well and scored early,” said Morata.
“We’ve got difficult games to come but we’re very good, we have 24 players that always want to play and we need to keep going like this and go for the league title.”
Barca lead the standings due to their superior head-to-head record although Real have a game in hand and will win a first domestic title since 2012 if they take seven points from their remaining three games.
Real could also win a league and European Cup double for the first time since 1958 as they are 3-0 up in their Champions League semi-final tie with Atletico Madrid, with the second leg taking place on Wednesday.
Barca’s formidable front three of Lionel Messi, Luis Suarez and Neymar all scored as the champions inflicted the heaviest league defeat of the season on Villarreal, who have the second best defensive record in Spain’s top flight.
Neymar was in sensational form in his second game back from suspension and nudged Barcelona ahead in the 21st minute after pouncing on a deflected pass from Messi.
Cedric Bakambu fired Villarreal level in the 32nd after beating the offside trap to latch on to a clever through ball from Roberto Soldado.
Barca were temporarily punctured by the leveller but a marvellous piece of skill from Messi allowed them to restore their lead on the stroke of halftime with a shot from the Argentine which flew beyond Andres Fernandez with the help of a deflection.
Suarez powered the ball under the Villarreal goalkeeper in the 69th to score his third goal in two games and the 100th for the feted front three this campaign, while Messi grabbed the fourth with a deft chip from the penalty spot in the 82nd.
“We played very well with and without the ball and scoring four goals against this Villarreal side shows how well we did,” Barca coach Luis Enrique told reporters. “Our pressure was key and we produced a complete performance against a great side.”
Atletico Madrid beat Eibar 1-0 with a second-half strike from Saul Niguez to move five points clear of fourth-placed Sevilla and tighten their grip on the last automatic Champions League berth.
Saul met a cutback from Diego Godin first time to send the ball into the bottom corner in the 69th minute. Uruguayan defender Godin was sent off in injury time for picking up two bookings inside three minutes.
Atletico coach Diego Simeone made just two changes from the side that were thrashed 3-0 by Real Madrid in the Champions League on Tuesday, resting only Kevin Gameiro for next week’s semi-final second leg, although Stefan Savic was suspended.
Sporting Gijon kept up their slim hopes of survival by beating Las Palmas 1-0, moving three points behind Leganes who occupy the final spot outside the relegation zone and host Real Betis on Monday.