Athletic Bilbao will take a slender 2-1 lead into next week's Copa del Rey last-16 second-leg tie against Barcelona after holding on for a precious victory at San Mames.
Les Leones raced into a two-goal lead in a breathless first half as they looked to exact revenge on Barca, who have defeated them in three of the last eight finals.
Barcelona also got the better of Athletic at the quarter-final stage last season, but they have work to do at Camp Nou next Wednesday after only pulling one back despite facing nine men in the last quarter of the match.
In an explosive first half of many talking points, it was the hosts who started the brightest and they were soon creating some openings in front of goal.
Just two minutes had passed when Mikel San Jose got to a corner first to narrowly head wide of the target, though he arguably should have been doing better from just five yards out.
Bilbao's high pressing was causing all sorts of problems for their opponents, with one slack ball leading to a counter which Aritz Aduriz could only weakly nod on target.
Gerard Pique did have a chance to head his side in front up the other end, but that proved to be a rare sight of goal for Barca who were struggling to get their famed forward trio on the ball in dangerous areas.
A three-minute spell saw the game firmly swing in Les Leones' favour, with Aduriz pouncing on a stray Andres Iniesta pass and spraying it out to Raul Garcia, who returned the favour by picking out his teammate for a back-post header to open the scoring.
A stunning second was close behind, this time Aduriz turning provider by laying off Inaki Williams with a deft flick inside the box for a bullet of a shot past a rooted Marc-Andre ter Stegen.
Then came a major flashpoint in the match when Aduriz deliberately caught Samuel Umtiti in the throat with his fist, leaving the French centre-back in agony on the floor.
Umtiti was back on the field following some treatment and was quickly in the face of his opponent, leading to both players seeing yellow - two of five in the final five minutes of a first half that boiled over.
Barcelona ended the first half the stronger and they should have had a penalty when Neymar's legs were blatantly taken from under him by Xabier Etxeita, but the referee rejected the appeals on the stroke of the interval, just moments after Neymar had been denied from the visitors' first attempt on goal at the back post.
The improved showing from the Catalan giants continued into the second period and they were right back in it 52 minutes in after an hitherto quiet Lionel Messi caught Gorka Iraizoz off guard from a long-range free kick.
Iraizoz almost made amends by palming the ball onto the crossbar, but when it came back down it was deemed to have crossed the line by the referee Fernandez Borbalan - a call that replays proved to be correct.
It was the visitors who had the spring in their step from that moment on, finally clicking into gear and coming close to a quick-fire second when Neymar was denied by a sprawling Iraizoz stop.
Bilbao's task was made all the tougher 15 minutes from time when losing Garcia to a second yellow card, the second being awarded after following through on Neymar, and Ander Iturraspe followed soon after for a similar incident.
Messi was thwarted from close range when delaying his shot for too long, while Neymar saw his attempt blocked aside in front of goal as Barcelona threw all they had at an equaliser.
Luis Suarez was through on goal late on but opted to take the shot early and saw his lob easily kept out by Iraizoz, and Messi then struck the woodwork with the very last kick of the game when picked out unmarked inside the box