Barca's Messi opened the scoring in the 24th minute after a stunning solo run and then laid on a pass for Neymar to double the lead in the 40th with an irresistible chip.
Ivan Rakitic and Samuel Umtiti added to the scoring in the second half, the latter netting for the first time for the club, as Barca produced one of their best performances of the season in their first game since Luis Enrique revealed he would not be continuing as coach after the summer.
Messi then capped his virtuoso display with a darting run forward into the box past two defenders and a classy low finish, scoring an eighth goal in six league games and rounding off a rampant Barca display reminiscent of their 6-1 thrashing of Celta last year.
By the end of the game the words "Yes we can" echoed round the cavernous Nou Camp stadium as Barca's fans began to dare to believe they could replicate this stunning display against Paris St Germain in the Champions League on Wednesday, when they need to overturn a four-goal deficit from the last 16 first leg, something no team has done in the competition's history.
Barca top the La Liga standings on 60 points, one ahead of Real, while third-placed Sevilla, on 55, visit Alaves on Monday.
Real Madrid overcame the absence of Gareth Bale and Cristiano Ronaldo to romp to victory at Eibar, recording their biggest win since beating Real Sociedad 3-0 in January, lifting their confidence after dropping five points in three games.
[caption id="attachment_50503" align="aligncenter" width="640"]
Real Madrid's Karim Benzema in action against Eibar in Ipurua REUTERS
Karim Benzema was the focal point in Real's attack without the suspended Bale and injured Ronaldo and fired the visitors ahead in the 14th minute, following up his own shot on the rebound, before stretching their advantage in the 25th.
James Rodriguez provided the cross for Benzema's second goal and the Frenchman returned the favour for his Colombian team mate to net his first league goal since September in the 29th minute.
Marco Asensio hit the fourth on the hour with a rebound after James had struck the post, although Ruben Pena bundled in a consolation goal for Eibar in the 72nd minute.
(Machis 83) Granada 0
(Ruben 72) Real Madrid 4
(Benzema 14, 25, Rodriguez 29, Asensio 80)
(Soriano 45, Lopez 80-og) Espanyol 0
(Messi 24, 63, Neymar 40, Rakitic 57, Umtiti 60) Celta 0
P W D L GD Pts
26 18 6 2 55 60
25 18 5 2 41 59
25 17 4 4 20 55
26 15 3 8 6 48
25 13 7 5 23 46
26 12 9 5 19 45