Needing a win to move back to within two points of the Primera Division leaders, Carlo Ancelotti’s men fell behind early but, boosted by a brace from man of the moment Javier Hernandez, got the job done.
Nolito put Celta ahead before Toni Kroos and Hernandez nudged Real in front. Santi Mina equalised but James Rodriguez got the European champions into a lead which would then be improved by Hernandez’s second.
Real host Almeria in midweek while Barcelona are at home to Getafe, and the chances are they will go like-for-like again, but Ancelotti’s side at least showed they are in the fight with this come-from-behind win.
First-half goals from Vicente Iborra and Daniel Carrico lifted Sevilla up to fourth place with a 2-0 win over Rayo Vallecano.
Iborra fired an 18th-minute opener from an assist by Diogo Figueiras and Carrico doubled the home side’s advantage with a header from a Denis Suarez cross two minutes before the break.
The win lifts Sevilla above Valencia, who face relegation-threatened Granada on Monday night.
Deportivo La Coruna boosted their survival hopes on Sunday with a creditable 1-1 draw at Europa League hopefuls Malaga.
Oriol Riera headed in on the hour mark to cancel out Nordin Amrabat’s goal at the start of the second half in an evenly matched game, in which both sides hit the woodwork.
The draw saw Depor move on to 29 points, albeit still searching for a first win in 11 matches, while Malaga’s winless run stretched to seven matches, with their lead over Athletic Bilbao now just one point as they aim to hold on to seventh spot and the final European berth.
Almeria moved out of the relegation zone with a much-needed 2-0 Primera Division victory over Eibar at the Mediterraneo on Sunday afternoon.
Thievy Bifouma and Verza were on target in each half as Sergi Barjuan’s strugglers claimed just their second win from their last 11 matches to move level on points with their opponents, who sit a spot above them in 16th.
Eibar, who have won just one of their last 15 games, face a similar task of fighting off relegation with five matches of the season remaining.
Javier Hernandez struck twice as Real Madrid kept the pressure on Barcelona at the top by reducing the Catalans’ lead to two points with a enthralling 4-2 win at Celta Vigo.
Nolito fired the hosts into an early lead before goals from Toni Kroos and Hernandez turned the game around.
Santi Mina brought Celta level, but James Rodriguez’s deflected effort put Madrid in front once more before the break and Hernandez rounded off the scoring in style 22 minutes from time.