A second-half goal from Porto's Wenderson Galeno denied Swansea City a place in the final of the Premier League International Cup and ended their hopes of a treble.
The forward struck at the Liberty Stadium just before the hour for the only goal, coming in unmarked to convert a cross.
Swansea had chances to equalise, most notably through Adam King, but were unable to send the tie to extra-time.
See: Swansea report
Porto will meet the winner of the other semi-final, Norwich City v Sunderland, which takes place on Friday 31 March.
📸 Action shots from today's #PLInternationalCup match at Liberty Stadium... pic.twitter.com/B0kpr52hpn— Swansea City AFC (@SwansOfficial) March 25, 2017
After securing the Premier League 2 Division 2 title, Swansea can still claim a double with the Premier League Cup, where they face Brighton & Hove Albion, in the quarter-finals on 3 April.