La Liga Wrap: Real go top by beating Granada
Carlo Ancelotti's men laboured for much of the encounter with the Andalusian outfit, but the capital club's quality shone through, with Cristiano Ronaldo and Karim Benzema finding the net to seal the points.
Ronaldo opened the scoring 11 minutes into the second half with a fierce low strike, and the Portuguese came close to doubling the lead shortly afterwards when he struck the crossbar with a free-kick.
However, Benzema ensured victory with 16 minutes left, the France striker turning home from Marcelo's square pass as Real moved to the top of the table, two points ahead of both Barca and Atletico, who face Malaga and Rayo Vallecano respectively on Sunday.
Fifth-placed Villarreal's UEFA Champions League hopes were dented as Marcelino's men slipped to a 1-0 defeat at relegation-threatened Valladolid.
Defender Jesus Rueda's 40th-minute goal proved to be the difference as Valladolid pulled out of the relegation zone.
Meanwhile, Valencia were held to a 2-2 home draw by Espanyol, striker Sergio Garcia's penalty on the stroke of half-time ensuring a share of the spoils for the visitors after Valencia had turned things around through Paco Alcacer and Jonas following Jhon Cordoba's third-minute opener.
Two goals in five second-half minutes gave Levante a narrow 3-2 victory over Sevilla.
Coke's 25th-minute opener gave the hosts the lead at Estadio Ramon Sanchez Pizjuan, before David Barral levelled things up from the penalty spot.
An action-packed second half saw Ivan Rakitic restore Sevilla's lead after 69 minutes, but Loukas Vyntra and then Simao Junior completed the turnaround for Levante.
There was still time for both sides to end the game with 10 men, as Nikos Karabelas and Sevilla substitute Jairo were both sent off late on.