Porto – who had featured in the Champions League group stage in each of the last three campaigns, including a run to last season's quarter-finals – were upstaged 3-2 by visiting Krasnodar on Tuesday.
Krasnodar blitzed Porto with a three-goal first half thanks to Magomed Suleymanov's brace as the Russian side prevailed on away goals after a 3-3 draw.
Scottish champions Celtic were denied a play-off berth by Cluj, whose 4-3 victory on the night in Glasgow secured a shock 5-4 success across two legs.
Celtic led the second leg 3-2 after 76 minutes but Billel Omrani and George Tucudean struck inside the final 10 minutes to silence Parkhead and give the Romanian outfit a memorable victory.
Captain Dusan Tadic was at the double as Erik ten Hag's Ajax held on to beat PAOK 3-2 in Amsterdam, where the Eredivisie holders escaped 5-4 on aggregate.
Tadic scored twice and missed a penalty as Ajax's hopes of repeating last season's remarkable Champions League run stayed alive amid uncertainty over the future of Real Madrid target Donny van de Beek.
In Copenhagen, 22 penalties were taken as Red Star Belgrade sensationally prevailed 7-6 in a dramatic shoot-out.
Penalties were required after the Copenhagen-Red Star tie ended 2-2 on aggregate following Tuesday's 1-1 stalemate at Telia Parken.
Elsewhere, Basel and Dynamo Kiev bowed out as LASK, Club Brugge, Dinamo Zagreb, Olympiacos, APOEL and Rosenborg progressed.
#UCL 𝘵𝘩𝘪𝘳𝘥 𝘲𝘶𝘢𝘭𝘪𝘧𝘺𝘪𝘯𝘨 𝘳𝘰𝘶𝘯𝘥 𝘳𝘦𝘴𝘶𝘭𝘵𝘴 ✅— UEFA Champions League (@ChampionsLeague) August 13, 2019
🇧🇪 Club Brugge
🇷🇸 Crvena zvezda
🇭🇷 Dinamo Zagreb
🇷🇴 CFR Cluj
All scores 👉 https://t.co/Rc95IaV06Y pic.twitter.com/Dvpg2flh21
Champions League play-off ties:
CFR Cluj v Slavia Prague
APOEL v Ajax
LASK v Club Brugge
Dinamo Zagreb v Rosenborg
Young Boys v Red Star Belgrade
Olympiacos v Krasnodar