Porto will have to settle for a place in Europe's second-tier club competition after their Champions League campaign ended with a 2-0 defeat at Group G winners Atletico Madrid on Wednesday.
Zenit St Petersburg lost 4-1 at Austria Vienna in the other match in the group but the Russians went through to the last 16 in second place behind Atletico.
The Portuguese side's luck deserted them at the Calderon as Josue had a penalty saved after Raul Garcia's 14th-minute opener and four efforts bounced away off the frame of the goal during the match.
Diego Costa made it 2-0 to Atletico in the 37th minute when he sped clear onto an Oliver Torres pass, rounded goalkeeper Helton and clipped the ball into the net.
Atletico finished with 16 points from six matches, Zenit on six, and Porto and Vienna on five. Porto qualified for the Europa League ahead of the Austrian side due to a superior head-to-head record.
Needing a win to progress, Porto immediately went on the attack against a second-string Atletico and Jackson Martinez crashed a volley against the crossbar in the eighth minute.
Already assured of first place in the group, Atletico scored from their first genuine chance when Garcia controlled the ball on his thigh and lashed an angled shot into the net off the bar.
The Atletico reserve keeper atoned for his mistake by blocking Josue's tame effort but Porto continued pressing and a deflected Martinez effort hit the outside of a post in the 36th.
A minute later Costa doubled Atletico's lead and although Porto dominated the second half they were unable to breach an Atletico defence that has leaked only three goals in the latest edition of Europe's elite club competition.