A 2-1 victory may not be enough to get Jose Mourinho`s side back in the title race - they are 13 points behind - but it was a notable scalp for the capital club, who started without the likes of Cristiano Ronaldo, Mesut Ozil, Sami Khedira, Gonzalo Higuain and Alvaro Arbeloa.
A much-changed side mattered little for in-form Madrid, though, and Karim Benzema put them 1-0 ahead with 13 minutes gone, only for Lionel Messi to level 10 minutes later.
Sergio Ramos would have the last word with the winner nine minutes from time, but there was still room for drama as Barca keeper Victor Valdes was sent off following the final whistle for arguing with referee Miguel Angel Perez Lasa.
There was not as much to talk about in the game between Deportivo La Coruna and Rayo Vallecano, however, with the match ending 0-0.
Depor did bring to an end their six-match losing streak but still remain deep in trouble at the foot of the La Liga table after being held at home.
It might have been even worse for the Galician side after they found themselves on the back foot for much of the first half and then reduced to 10 men in the closing stages when veteran defender Carlos Marchena was sent off.
Athletic Bilbao eased their drop fears with a much-needed victory over local rivals Osasuna at the Reyno de Navarra stadium to move six points clear of the relegation zone.
A volleyed goal by Markel Susaeta midway through the second half was enough to give Marcelo Bielsa's side the three points, but the Navarrans were superior for large periods of the match.
In the day's late game, the derby between Valencia and Levante, an 89th-minute equaliser from Jose Barkero stopped Los Che moving above Malaga into fourth place.
His goal came after Jonas and Roberto Soldado had turned around Vicente Iborra's opener for Levante, who remained in mid-table.
Friday's La Liga Result(s)
Saturday's La Liga Fixture(s)
Sunday's La Liga Fixture(s)
Monday's La Liga Fixture(s)
Sevilla vs Celta Vigo