Barca needed a response after going down at lowly Leganes in midweek. Following a number of changes to the line-up, the hosts started positively.
However, Bilbao pegged back quickly and found their first effort on target through Raul Garcia but Marc Andre Ter Stegen cleared for a corner on 13 minutes.
Two minutes later, Inaki Williams conjured their second effort on goal but Ter Stegen handled easily after good work from the former.
The visitors made an early change subsequently for tactical reasons as Peru Olaskoain replaced Inigo Martinez.
Barca then got their first effort on goal after a ball from Arturo Vidal found Luis Suarez but he shot straight at Unai Simon on 25 minutes.
Suarez went up close with the keeper again, but Simon pulled off another bit of heroics to prevent them.
The hosts were stunned as Oscar De Marcos finished off from close range after poor defending five minutes to halftime.
The Catalans made two quick changes shortly after the break. Sergio Busquets replaced Sergi Roberto, while Lionel Messi replaced Vidal.
Barca came close to drawing level after Phillipe Coutinho’s shot cleared the crossbar before Suarez feed off the rebound that Simon easily saved at the midway point.
The chances came at either end in the latter stages. Williams raced through on goal and looked destined to add a second, but a challenge from Nelson Semedo came through.
Messi were inches away from making it level after picking up a ball from inside the box, but the left-hand post denied him.
On 83 minutes, Barca drew level after Munir El Haddad connected with Messi’s cross-field shot to curve home in the top corner.
Messi set-up another chance –this time for Ivan Rakitic but the Croatian fired over the top a minute from the end.
In the end, it proved to be another frustrating evening for Barca who drop seven points in the space of one week.