Ousmane Dembele fired Barcelona into the last four of the Copa del Rey with a hard-fought win over 10-man Real Sociedad.
Dembele broke the deadlock at the Nou Camp with a powerful near-post effort after 52 minutes.
Brais Mendez had seen red for Sociedad at the end of the first half following a VAR check for catching Sergio Busquets high on the ankle.
In-form Dembele provided the breakthrough soon after half-time and left the pitch to a standing ovation following a dazzling display for the LaLiga leaders, 12 months on from being told he could leave the club during the last January transfer window.
Osasuna were involved in another dramatic cup encounter but progressed into the last four with a 2-1 win after extra time against Sevilla.
After needing a stoppage-time goal and penalties to see off Real Betis in the last round, another Andalusia club were downed this time with Chimy Avila and Abdessamad Ezzalzouli on target for hosts Osasuna.
Youssef En-Nesyri had struck in the 94th-minute to force extra-time at El Sadar but Sevilla still exited after Ezzalzouli’s superb curled finish.
Borussia Dortmund secured a last-gasp 2-1 win at Mainz after Giovanni Reyna scored in stoppage-time to boost their faltering title hopes.
Edin Terzic’s team looked set to drop more points before substitute Sebastien Haller, in his second match since returning from testicular cancer, set up Reyna to fire home from close range.
Jae-Sung Lee had put Mainz ahead after two minutes but new signing Julian Ryerson levelled with four minutes on the clock before the dramatic finale moved Dortmund up to fifth and five points off Bayern Munich.
Surprise package Union Berlin are second after a 2-1 victory at struggling Werder Bremen.
Bremen suffered a 7-1 defeat at Koln last weekend but took the lead after 13 minutes through Amos Pieper.
Janik Haberer managed to level for visiting Berlin four minutes later and Kevin Behrens’ effort at the start of the second half earned them all three points.
Freiburg and Eintracht Frankfurt had to settle for a share of the spoils but both dropped a place in the table after their 1-1 draw.
Randal Kolo Muani fired Frankfurt ahead three minutes before half-time only for Matthias Ginter to level in the 47th minute with the duo dropping to sixth and fourth respectively.
Augsburg moved out of the bottom three with an impressive 1-0 win over Borussia Monchengladbach to further dent the European qualification hopes of the visitors.
Mergim Berisha proved the hero for Augsburg with the winner eight minutes from time.
Bochum have dropped to 16th after their 2-0 loss at Bayern Leverkusen.
Edmond Tapsoba made the breakthrough for Leverkusen from the penalty spot in the eighth minute and Adam Hlozek completed the scoring in the 53rd-minute.