With Barcelona cruising to a shocking 6-0 win at Atletico Madrid -- the worst defeat at home in Atletico history -- Real Madrid looked to be in trouble when it blew a 2-0 lead at Recre.
Brazilian veteran Roberto Carlos earned Real the three points when he scored in injury time after being sprung by young Argentine import Fernando Gago.
Robinho (off a David Beckham cross) and Ruud van Nistelrooy (penalty kick) had scored to put Real comfortably ahead, but Recre, which had won, 3-0, at Madrid earlier in the season, fought back on goals by Jesus Vazquez and Uche.
Argentine starlet Lionel Messi had a superb game for Barca, scoring twice against Atletico.
Gianluca Zambrotta, Samuel Eto'o, Ronaldinho and Andres Iniesta also scored for the defending champion.
With three games left, Real and Barcelona are tied with 69 points, but Real Madrid has won the tiebreaker (better head-to-head). UEFA Cup champion Sevilla remained just two points further back with a 2-1 comeback win at Deportivo Coruna. Valencia is in fourth with 65 points after its 1-0 win at Real Mallorca .