Andriy Shevchenko, who scored Kiev's goal in the 1-1 draw in Madrid in the first leg, was the Ukrainian champions' hero again, scoring both goals in the second half, the first from the rebound after his penalty kick was saved.
Last year's beaten finalists, Juventus, saved themselves from defeat at Olympiakos when their captain, Antonio Conte, scored five minutes from time in Greece to force a 1-1 draw and give the Italians a narrow 3-2 aggregate win.
Olympiakos seemed set to end the Turin club's hopes of a fourth successive European Cup final when they led Juventus 1-0 for most of the match, thanks to a 12th-minute goal from Sinisa Gogic. But with the aggregate score 2-2 and Juve apparently on their way out of the tournament on the away-goals rule, Conte struck to put his side in the last four.
Bayern Munich trounced their German Bundesliga rivals Kaiserslautern 4-0 away from home for a 6-0 aggregate victory. Two goals from Carsten Jancker, a penalty from Steffen Effenberg and a second-half strike from Mario Basler made it easy for the Bavarians at the Fritz Walter stadium.