Liverpool will face Roma for a place in this season's Champions League final while Bayern Munich take on defending champions Real Madrid.
The first leg will be played at Anfield, where the Reds are unbeaten in Europe since October 2014, as Mohamed Salah comes up against his former side.
Liverpool beat Manchester City 5-1 on aggregate to reach the semi-finals while Roma stunned Barcelona to progress on away goals.
The Italians, whose only final appearance was in 1984 when they lost to Liverpool on penalties, have kept clean sheets in all five matches at Stadio Olimpico in this season's Champions League.
The other semi-final sees five-time winners Bayern take on a Real Madrid side who are bidding to win a record 13th Champions League title and third in a row.
The first leg takes place at the Allianz Arena, where Bayern are unbeaten in 20 games in all competitions this season.
Madrid are semi-finalists for the eighth consecutive season while Cristiano Ronaldo has scored in 11 successive games in Europe.
Champions League semi-final draw
Bayern Munich v Real Madrid
Liverpool v Roma