Lionel Messi unleashed a stunning solo effort to put his side in front in the 33rd minute with what was also his 33rd goal of the season, and there was no looking back as the hosts went on to claim their ninth straight win.
Luis Suarez scored a fine second 10 minutes into the second half and, after Marc Bartra’s header had made it 3-0 to the hosts, Suarez wrapped things up with his second deep into stoppage time.
Cristiano Ronaldo scored his 300th goal as??Real Madrid??stayed in pursuit of top spot with a hard-earned 2-0 win at??Rayo Vallecano.
Ronaldo headed home Daniel Carvajal’s 68th-minute cross for the opener and James Rodriguez stroked home his side’s second five minutes later to secure the win.
Struggling??Granada??missed a golden opportunity to move within a point of safety after conceding a stoppage-time equaliser in a 1-1 draw with??Celta Vigo.
Robert Ibanez gave the hosts a third-minute lead and they looked set to hold out despite the 42nd-minute dismissal of Jeison Murillo for a second bookable offence.
But Celta substitute Theo Bongonda scored three minutes into stoppage time to leave Granada still three points adrift.
Bottom club??Cordoba??also missed a big opportunity as they were held to a 1-1 draw at??Deportivo La Coruna.
Deportivo were lucky to escape with a point after Florin Andone put Cordoba in front and the visitors had Luisinho sent off in the 69th minute for a second bookable offence.
But Andone went from hero to villain when he scored an own goal three minutes from time to leave Cordoba stranded eight points adrift of safety.