After El Clasico finished 0-0 in midweek, Barcelona had signed off from 2019 with a 4-1 win over Alaves on Saturday to keep the pressure on in the title battle.
Despite hitting the woodwork three times, Los Blancos were not able to find a breakthrough against a resolute Bilbao side – and head into the Christmas break once again two points behind their rivals.
It is the first time since 2006 that Madrid have recorded successive 0-0 draws in the league.
Brazilian forward Vinicius saw an early chance blocked by goalkeeper Unai Simon, before the home side went close to breaking the deadlock in the 19th minute.
Toni Kroos darted into the penalty area and his close-range effort cannon off the keeper before flying up onto the crossbar.
Bilbao – who had not won a LaLiga game at the Bernabeu for almost 15 years – threatened when Inaki Williams held off Militao to send a low shot towards the bottom corner, which Thibaut Courtois palmed past the post.
Los Blancos pressed again on the half hour as first Karim Benzema's header was saved before the France forward saw his angled shot cleared off the line.
After Benzema, who has 12 LaLiga goals this season, curled a shot over, the visitors had the ball in the net just before half-time.
Mikel Vesga picked out Kenan Kodro, who drilled the ball past Courtois into the top corner – only for the goal to be ruled out by what looked a marginal offside decision.
Madrid upped the tempo following the restart, but continued to face a resolute Bilbao rearguard.
Benzema hit a first-time effort from Dani Carvajal's pass, but it was straight at Simon.
The home side struck the woodwork again as the hour mark approached.
Kroos floated a corner into the six-yard box, where substitute Nacho Fernandez sent a flying header crashing onto the bar.
Bale replaced Rodrygo, with Benzema then forcing Simon into another smart save as the home side stretched Bilbao again.
With 20 minutes left, Bale cut in front the right and curled a left-foot shot wide of the far post.
Madrid continued to push Bilbao back during the closing stages, and almost fashioned a late winner.
With three minutes left, substitute Luka Jovic saw his downward header from Carvajal's cross clip the inside of the post and bounce out as Bilbao held on.