Los Blancos hit the post in either half and tested Kepa Arrizabalaga on a few occasions, but there was to be no way through on a frustrating evening.
The hosts' best chance arguably fell the way of Raul Garcia, who was unable to make the most of the opportunity when picked out unmarked at the back post.
Relive how the 90 minutes of action unfolded in the Basque Country with Sports Mole's live text coverage below.
STARTING XI: Keylor Navas; Carvajal, Ramos, Varane, Marcelo; Modric, Casemiro, Kroos; Isco; Benzema, Ronaldo
SUBS: Casilla, Ceballos, Nacho, Hernandez, Kovacic, Vazquez, Mayoral
STARTING XI: Kepa; De Marcos, Etxeita, Nunez, Balenziaga; Iturraspe, Mikel Rico; Williams, Raul Garcia, Susaeta; Aduriz
SUBS: Aketxe, Boveda, Cordoba, Herrerin, Lekue, Sabin, San Jose
Jose Angel Ziganda: "That's football. Without it being a great match or there being much rhythm, we had more than enough chances to score a goal. The anxiety of that urgency, winning, made us lack precision, and, in the end, we lost to a set-piece. It was a very tough pill to swallow. They practically never came close to our goal, but we knew it'd be the case because they play in Segunda B. They positioned themselves well, that was their game and it went well for them."
Zinedine Zidane: "I've always got the best players so you can ask any question you like [about Kepa] but I've got Keylor and, for me, he's the best. I'm always going to be with Keylor and Kiko [Casilla]. Kepa's a good goalkeeper, sure. There's no doubt about that. But he's not my goalkeeper. I'm sticking with Keylor and Kiko. We'll see what happens when they open the market. We'll see if any one comes and if they can, they can. But I've got Keylor and I'm happy with that."
ATHLETIC BILBAO SUBS: Aketxe, Boveda, Cordoba, Herrerin, Lekue, Sabin
REAL MADRID SUBS: Casilla, Ceballos, Nacho, Hernandez, Kovacic, Vazquez, Mayoral