The striker's second goal of the season was enough for Carlo Ancelotti's men to take all three points from their trip to the Estadio Nuevo Los Carmenes.
While Madrid exerted plenty of pressure on Lucas Alcaraz's side, they were made to work hard for their opportunities and could not add to their lead.
Ancelotti started Alvaro Arbeloa at right-back in place of Daniel Carvajal, while Angel Di Maria came in for the injured Sami Khedira.
For the hosts, Diego Mainz replaced Jeison Murillo in the heart of their defence.
The visitors had won their last five games in all competitions and began positively, with Benzema dinking over Roberto - but off target - five minutes in.
However, four minutes later, the France international found the net to give the visitors the advantage.
Di Maria's deep cross found Cristiano Ronaldo in the six-yard box, but while the Portuguese struggled to control the delivery, Benzema was on hand to divert the ball home.
Youssef El-Arabi should have equalised 10 minutes later, but his tame effort was hit straight at Diego Lopez.
While Madrid were content to keep the ball and probe, neither they nor their opposition were able to create further goalscoring opportunities as Ancelotti's men took a slender one-goal lead in at the break.
Granada saw a claim for a penalty turned down 12 minutes after the interval after an Allan Nyom effort appeared to deflect off Arbeloa's arm.
That sparked the half into life, with Isco beating Manuel Iturra on the left, four minutes later, before striking the outside of Roberto's post.
Ancelotti's side continued to threaten, with Ronaldo forcing two saves from the home goalkeeper, but the Italian had to settle for a slender win.