Holders Real Madrid have been drawn against city rivals Atletico Madrid in semi-finals of the Champions League, while Monaco will face Juventus.
Real downed Bayern Munich after extra-time in the quarter finals as they seek to become the first club to retain the elite crown in the current format.
Atletico defeated Leicester City as they bid to return to the final after defeats to Real in 2014 and 2016.
This will be the fourth successive season the rivals have met in the competition and Atleti have yet to get the better of Los Blancos across that run.
Juventus, winners in 1985 and 1996, shut-out Barcelona to progress and meet Monaco, back in the last four for the first time since they reached the final in 2004.
The semi-final first legs are to be played on May 2-3 (local time) with Real and Monaco at home.
Atletico and Juventus will host the second-leg matches on May 9-10 (local time).
The final will be played in Cardiff on June 3 (local time).