Marco Asensio, Nacho Fernandez, Vinicius Jr and Ferland Mendy were on target for Real, who are two points ahead of second-placed Sevilla and third-placed Real Sociedad, who play Valencia later on Sunday.
Carlo Ancelotti’s team made a bright start and were 2-0 ahead after 25 minutes with goals from Asensio and Nacho, both from assists by Kroos.
But Real got a scare a few minutes later, when a shot from Luis Suarez deflected off Nacho and deceived Real keeper Thibaut Courtois, who dived to the left as the ball slowly crossed the goal line to his right.
Granada’s hopes of a comeback were short lived, however, as Real got back on top after the break and Vinicius extended their lead, finishing off a beautiful team move that also involved Karim Benzema and Casemiro.
After Granada’s Monchu was sent-off for an ugly sliding tackle on Vinicius, Mendy wrapped up the scoring for the visitors.
“It’s hard to get into rhythm after an international break but we are happy with our performance. We played a great game,” Asensio told reporters after scoring his first goal since September.
“We have an intense schedule until Christmas (eight games in 30 days) and we need extra focus to go through this period,” he added.
It was Real’s third consecutive league win as the Spanish giants prepare to face Sheriff Tiraspol away in the Champions League on Wednesday.
The Moldavian club inflicted Real’s only defeat so far in this season’s group stage when they stunned the Spaniards with a 2-1 victory at Santiago Bernabeu in September.
Granada, who have won only two games this season, are third from the bottom and in the relegation zone.