It was an important victory for Madrid, who drew 2-2 to Club Brugge at home in the Champions League in midweek.
The hosts opened the scoring within the first two minutes as Gareth Bale produced a wonderful cross with the outside of his left boot to find an unmarked Benzema to tap home.
Just before the break, Madrid made it 2-0 after Hazard went through one-on one with the Granada goalkeeper and scored with a fantastic chip.
The Belgium international has struggled to find form since his summer move from Chelsea and recently admitted he needed to play much better for his new club.
Substitute Modric wrapped up the game after the hour mark, with a superb effort from outside of the box.
The visitors grabbed a second from corner through Duarte late on but Rodriguez scored in injury time as Madrid secured the victory.
Madrid defender Dani Carvajal did not hide his unease about conceding the two late goals, which brought back memories of a nervy 3-2 win over Levante earlier this season.
"We can't afford to suffer like that after leading 3-0, we need to correct this tendency. We got away with it today and against Levante but if we keep doing this we're going to drop points," he told reporters.
"It's not a sign that we're very reliable and we need to be more ruthless but whatever happens this weekend we'll still be top."