It will be the seventh time these two sides meet in the semi-finals of this competition. Liverpool, meanwhile, will take on Italian outfit Roma in the other semi-final.
The quarter-finals were nothing short of great, producing some jaw-dropping results and supporters of the beautiful game will be expecting more of the same in the semis.
Madrid needed a last-gasp penalty from their star man Cristiano Ronaldo to progress to the semi-finals ahead of Italian giants Juventus, who felt they were hard done by as referee Michael Oliver penalised Medhi Benatia for bringing down Lucas Vazquez in the box.
Madrid, who won the action-packed tie 4-3 on aggregate, are determined to win a third straight Champions League title with coach Zinedine Zidane, a winner of this competition during his playing days.
Bayern beat Sevilla 2-1 on aggregate in their low scoring affair. The Bavarian giants were held to a goalless stalemate by the Spanish outfit in the second leg in Munich, but had done enough in the first leg to win the tie.
Italian outfit Roma pulled off one of the most incredible comebacks in Champions League history, registering a 3-0 victory in Rome after losing the first leg tie 4-1 to Barcelona.
Liverpool knocked out English Premier League rivals Manchester City in the previous round, thumping Pep Guardiola's side 5-1 on aggregate.
The first leg of the semi-finals will be on April 24/25, with the return duels on May 1/2.
The final will be played at Kiev's NSC Olimpiyskiy Stadium in Ukraine on May 16.