A first half of few clear chances was almost lit up in the 32nd minute when Mikel Rico drove into the box after receiving a pass from Ander Herrera, but his subsequent shot was straight at the keeper.
Granada were the side who broke the stalemate seven minutes after the restart when Herrera was penalised for a high foot on Jeison Murillo inside the area. Youssef El Arabi stepped up to the spot kick and made no mistake to give the hosts the lead.
El Arabi doubled that lead and his personal tally less than 10 minutes later when he powered a header home from Pape Diakhate's flick.
Bilbao came close to getting a goal back with just under 10 minutes of normal time remaining when Markel Susaeta's cross found Oscar de Marcos inside the box, but the sub could only fire his shot high and wide.
The visitors were unable to force a dramatic late comeback in the closing stages as Granada held out to pick up an overdue victory.