Cristiano Ronaldo scored the winner to settle a Clasico lacking its usual intensity and send Madrid seven points clear of their opponents at the top of the table with four games to go.
The Portuguese forward, who overshadowed a quiet Lionel Messi, netted in the 73rd-minute, finishing well after Victor Valdes had rashly raced off his line.
Ronaldo's winner came just two minutes after Alexis Sanchez had bundled in an equaliser to cancel out Sami Khedira's equally scrappy 17th-minute opener.
Victor Casadesus' first-half header consigned earned Mallorca a 1-0 win at home to Real Zaragoza, whose survival hopes were left hanging by a thread.
The defeat left Zaragoza second bottom, five points from safety.
Sporting Gijon moved level on points with Zaragoza with a 2-1 win at home to nine-man Rayo Vallecano.
Gaston Sangoy gave the hosts a deserved lead after 17 minutes and, although Mikel Labaka equalised six minutes into the second half, substitute Mate Bilic's fine strike 12 minutes from time restored their lead.
The winner arrived moments after Labaka had been sent off for a bad foul on Bilic, with Jose Manuel Casado also receiving his marching orders three minutes from the end for a second bookable offence.
Both Sevilla and Levante missed the chance to move closer to their goals as they played out a draw 1-1 on Saturday night.
Levante knew a win would put them level on points with fourth-place Malaga ahead of their game tomorrow, while Sevilla could have moved to within three points of the top-four Champions League berths with victory.
It was not to be for either of them, though.
Sevilla dominated throughout, a surprise in the wake of their 5-1 midweek drubbing by Getafe, but only had the one goal to show for it from Alvaro Negredo.
Arouna Kone levelled before the break and, despite more Sevilla pressure, the home side knew it was not going to be their night when Negredo missed an 87th-minute penalty.
Saturday's La Liga Results
Sunday's La Liga Fixtures
Monday's La Liga Fixture
Osasuna vs Malaga