Copa del Rey Wrap: Bilbao, Malaga take command
Ernesto Valverde's men emerged victorious from a thrilling first leg at Balaidos, with their four away goals leaving Celta with a mountain to climb in the second meeting at San Mames.
Defender Mikel San Jose put the visitors ahead after five minutes and, while midfielder Alex Lopez equalised six minutes later by firing home from 12 yards, Aritz Aduriz restored Bilbao's lead with a 15th-minute header.
Celta again fought back and levelled through Charles in the 55th minute, the Brazilian striker pouncing on a poor defensive header from Mikel Balenziaga.
A cool finish from Markel Susaeta gave Bilbao the advantage for a third time in the 61st minute and the Basque club did not relinquish control.
Defender David Costas received his second yellow for Celta following deliberate handball, and the 10-man hosts were finally condemned to defeat by Aduriz's 87th-minute penalty after he was adjudged to have been fouled by Cabral.
Malaga are on course to meet the winner of that tie in the next round after a 2-0 home against Levante in the first leg of their last-16 encounter.
Winger Juanpi powered into the top-left corner in the 16th minute to open the scoring and Ricardo Horta made sure of the victory 12 minutes from time.