Despite playing at far from their best and with chances to find the net at a premium, a total of 120 minutes failed to separate the two sides. With the shootout level at 3-2 after Bruno Alves rattled the bar it was Cesc Fabregas who netted the winner.
Vicente Del Bosque sprung a real surprise before kickoff as he made one change to the side that defeated France in the previous round, electing to start with Alvaro Negredo ahead of both Cesc Fabregas and Fernando Torres.
His Portuguese counterpart Paulo Bento also made one change, his first after naming the same side for their six previous competitive fixtures. Helder Postiga was forced to begin among the substitutes with Hugo Almeida deputizing in his stead.
Portugal set about disrupting Spain's rhythm immediately by pressing its opponents high up the pitch. It worked for the opening few minutes as La Roja struggled to get their foot on the ball but they soon forged a chance for themselves.
Andres Iniesta played a give-and-go down the left flank with Jordi Alba before passing the ball into the box. Negredo could not get a shot away but managed to stab it back to the top of the box where Alvaro Arbeloa tried to caress it into the top corner but his attempt flew over the bar.
But the Spaniards were by no means dominating and Cristiano Ronaldo was proving difficult for Del Bosque's men to deal with. Two charging runs down the left however failed to result in anything to truly test Iker Casillas with a free kick and a wild volley on the spin inside the opening 25 minutes.
The Selccao continued their high-intensity pressing and Spain was unable to get the most out of Xavi when on the ball. A long ball forward resulted in an opportunity for Iniesta but he failed to hit the target but moments later Ronaldo pulled an effort wide of the goal.
Spain continued to look uncomfortable on the ball and just nine minutes after the restart Del Bosque admitted his prematch gamble had not paid off as he replaced Negredo with Fabregas.
Bento's side was getting a lot of joy from putting the Spaniards under pressure in their own half but Almeida failed to make the most of it in the 57th minute. After his side won the ball back he could have passed to Nani or Ronaldo but instead produced an ambitious shot from 35 yards that did not work Casillas.
Shortly after the hour mark Spain began to have its best spell of possession in the opposing half but there remained little to separate the two sides as the tension mounted. Xavi got the game's first shot on target with a drilled attempt that was straight at Rui Patricio, shortly followed by a Ronaldo free kick that flashed over the bar.
In the 90th minute Portugal found itself in a four-on-one but when the ball was shifted to the left Ronaldo failed to make a solid connection and blazed his well off target in what was the last opportunity of normal time.
As the Seleccao tired they were no longer forcing their opponents to play from deep, instead allowing them to control the ball in their own half during much of extra time. Del Bosque's side controlled the extra 30 minutes but Rui Patricio brilliantly thwarted both Iniesta and Jesus Navas either side of the break to ensure the game went to a penalty shootout.
Both teams got off to the worst start possible as Patricio and Casillas both saved from Alonso and Moutinho respectively. Iniesta, Pepe, Pique, Nani and Ramos all scored before Bruno Alves hit the bar to make the score 3-2 to Spain after four penalties each.
It offered Fabregas the chance to book their spot in the final and he obliged, scoring via the post and setting up a date in Kiev for the final with Germany or Italy on July 1.
Goal.com has a new podcast! Goal Daily Podcast is a MUST for all Soccer fans and discusses the very latest news and views. What’s more when you sign up the service is FREE for the first month and you can cancel anytime.