Two quickfire goals from Cristiano Ronaldo and Nani at the start of the second half proved to be the difference as Portugal ended Wales's remarkable run at the competition to reach just their second European Championship final.
The match was the first time that Wales had ever appeared in the last four of a UEFA or FIFA competition at any level, and they made a fairly nervous start against their vastly more experienced opponents.
Portugal, in their seventh semi-final at a major tournament, enjoyed more of the ball early on but struggled to make much of a breakthrough themselves as Wales dealt with a number of crosses into the box.
The first shot finally arrived in the 16th minute when Ronaldo, appearing in a record third European Championship semi-final, linked up with Joao Mario, only for the latter to drag his effort wide.
Wales earned their first corner of the contest three minutes later but, despite threatening on numerous occasions via the aerial route during their quarter-final win over Belgium, they switched things up with a low pass into the box that found Gareth Bale in space.
The Real Madrid man peeled away from his marker, but couldn't keep his difficult shot down having wrapped his foot around the ball.
Chris Coleman's side began to grow into the match as the half progressed, and midway through the opening period Bale provided the only shot on target of the first 45 minutes when he skipped away from his marker before bursting into the Portugal half and firing an effort straight at Rui Patricio from 25 yards.
Portugal were largely limited to long-range efforts throughout the first half, and Adrien Silva had one such shot shortly after the half-hour mark when he dragged his strike comfortably wide.
Ronaldo finally got his first sight of goal right at the end of the half, but James Chester did just enough to make things difficult for the Portugal skipper at the back post and he failed to trouble Wayne Hennessey with his header.
Indeed, the Wales keeper had nothing to do for the entirety of the first half, but that soon changed after the interval and he was picking the ball out of the back of his net within five minutes of the restart.
It was Ronaldo who broke the deadlock, towering above Chester in the area to power home a header and equal Michel Platini's all-time record of nine goals at European Championships.
The three-time Ballon d'Or winner also became just the third player to score in two separate Euro semi-finals and the first to achieve the feat since 1964.
Ronaldo soon turned provider as Portugal turned the game on its head with a second goal in the space of three minutes, although it was an inadvertent assist as his mis-hit shot fell into the path of Nani, who slid in to turn the ball home.
It should have been 3-0 shortly after the hour mark when Nani's shot deflected off Chester and Hennessey was unable to collect it, but Joao Mario lashed his rebound inches past the post.
Sam Vokes had half a chance to drag Wales back into the match when he latched on to a lofted Bale pass, but Portugal continued to look dangerous at the other end and Fonte almost added a third when he rose highest in the box from another corner, only for Hennessey to pluck his header out of the air.
Bale was on a one-man mission to haul his side back into the reckoning, but he was limited to speculative long-range efforts that tested Patricio on a couple of occasions.
Once again, though, it was Portugal who came closest to scoring when Danilo Pereira picked up a loose ball on the edge of the box and released a shot that Hennessey spilt before diving back and recovering the ball before it crept over the line.
Ronaldo had one late chance to move out on his own as the competition's highest ever goalscorer, but Hennessey drove him too far out wide and the Portugal skipper couldn't squeeze the ball in from a tight angle.
The Real Madrid man will have to wait until the final if he is to break that record, though, as Portugal saw out the 2-0 victory - their first win inside 90 minutes at this year's competition - to reach their first major tournament final on foreign soil.
Fernando Santos's side will face either hosts France or world champions Germany in Sunday's final in Paris.