Asensio found a way past Granada’s defensive wall with a brilliant angled shot from outside the box.
After second-placed Sevilla drew 0-0 at Osasuna on Saturday and third-placed Real Betis lost 2-0 at home against Villarreal, Real Madrid extended their lead at the top to six points.
Missing four key starters, Real Madrid completely dominated the match and finished with almost 70% possession and 10 shots on target against only three from Granada.
Manager Carlo Ancelotti came into the match facing a selection headache.
Karim Benzema, LaLiga's top scorer with 17 goals, was missing his second consecutive game with a leg muscle injury, while Vinicius Jr., who is second only behind his teammate on the scorers' list with 12 goals, was suspended. Casemiro and Lucas Vazquez were left out at the last minute due to stomach bugs.
Even with those players out, Ancelotti started with Gareth Bale and Eden Hazard on the bench, with both players out of favour with the coach.
Without a natural striker, Ancelotti used Isco and Marco Asensio as forwards but his team were clearly hampered by the absence of Benzema and Vinicius, who have scored 29 of Real's 48 league goals this season.
Both Isco and Asensio had chances in the first half with similar shots that were kept out by Granada keeper Luis Maximiano, who made several incredible saves.
Real's came close to opening the scoring when Carlos Neva tried to clear a Toni Kroos cross but sent the ball straight onto his own crossbar.
Madrid turned the screw after the break but Granada held firm until Asensio recovered a loose ball just outside the visitors' area and rifled home an outstanding strike.
"It was a very difficult match, it demanded a lot from us from the first minute," Real's Marcelo told reporters.
"The key was to have patience with the ball and we managed to finally find a goal with a fantastic shot from Asensio."