Porto scored five again, this time away at Spartak Moscow, conceding two, and advancing 10-3 on aggregate.
They will meet Villarreal, who drew 1-1 at Twente to complete a 6-2 aggregate victory.
Benfica were 2-0 down at PSV after winning the first leg of their tie 4-1 and facing a remarkable defeat, before goals from Luisao and Oscar Cardozo with a penalty levelled the game and sent them through 6-3 overall.
And they will play Braga, who progress on away goals after a 0-0 home draw with Dynamo Kiev, following the 1-1 draw they achieved in Ukraine last week.