Ivan Rakitic opened the scoring after 25 minutes and then Luis Suarez struck at the start of the second period, grabbing his third goal in four days.
Fran Rico pulled one back for the hosts from the penalty spot but Suarez then put the ball on a plate for Lionel Messi to restore the two-goal advantage.
Alberto Bueno scored four goals in the space of 14 minutes to help Rayo Vallecano to a dramatic 4-2 win over Levante in Vallecas.
Victor Casadesus gave the visitors the lead in the 13th minute but Bueno levelled 11 minutes later and almost every time the striker touched the ball for the remainder of the half it ended up in the net.
The second half saw far less goalmouth action, but Kalu Uche came off the bench to get a late consolation goal for Levante.
Almeria held on to claim a goalless draw at home to fellow strugglers Deportivo La Coruna after playing most of the second half of their clash with 10 men.
Striker Koulossa Thievy was dismissed for a second bookable offence in the 55th minute to leave his side a man down for a large part of the game.
However, despite Depor’s best efforts, the sides could not be separated thanks to a lack of clinical finishing, meaning the game ended goalless.
Almeria defender Machado Michel was also sent off in the 90th minute but it was too late for Depor to press home any advantage.
Malaga remained seventh despite defeating Getafe 3-2 in a five-goal thriller at La Rosaleda.
Goals from Juanmi (10), Sergi Darder (57) and Ricardo Horta (67) earned the hosts all three points with Alavaro Vazquez (55, 76) netting for Getafe.