Midfielder Mikel San Jose opened the scoring in the first half with a sensational 40-yard half-volley, with forward Aritz Aduriz netting a 14-minute second half hat-trick to claim a famous victory for the hosts.
The result puts Bilbao in a strong position ahead of the second leg at the Nou Camp on Monday and it will take an almighty performance from Barca to prevent them getting their hands on the first piece of silverware of the season.
Despite Barca dominating possession during the early stages, it was Bilbao who opened the scoring in the 13th minute.
Barca goalkeeper Marc-Andre ter Stegen failed to deal with a clearance from his opposite number Gorka Iraizoz and was punished, with San Jose perfectly executing a half-volley from just inside the visitors’ half.
Luis Enrique’s side failed to recover from that setback and mustered just one shot on target during the opening 45 minutes, but Iraizoz was equal to Lionel Messi’s free-kick.
Barca came close to an equaliser just after the interval, however in-demand forward Pedro saw his effort cannon back off the crossbar.
That was the signal for an astonishing Barca collapse. Aduriz grabbed his first of the evening, and Bilbao’s second, in the 53rd minute, heading past Ter Stegen following good work on the left.
His second arrived just seven minutes later following more indecision from the Barca backline. Their inability to deal with a routine ball into the box allowed the 34-year-old the easy job of sweeping home.
Aduriz rounded of the scoring in the 67th minute by claiming his hat-trick from the penalty spot after Dani Alves was penalised by the referee for an off the ball push.