Cesc Fabregas struck the winning spot kick as holders Spain beat Portugal 4-2 on penalties after their Euro 2012 semi-final ended goalless after extra time on Wednesday.
Spain keeper Iker Casillas saved Joao Moutinho's opening penalty then Bruno Alves hit the bar to eventually open the door for substitute Fabregas, who scored via the post.
World champions Spain have reached a third consecutive major tournament final, which will be played in Kiev on Sunday, equalling the record set by West Germany in the early 1970s.
It was the second successive game to go to penalties after Italy beat England in the last eight, with the Italians playing Germany in Warsaw on Thursday in the second semi-final.
Despite the derby nature of the game between the two Iberian neighbours which featured seven Real Madrid club mates, it started in a largely sporting, open spirit.
However it began to get increasingly fractious as it went on with Turkish referee Cuneyt Cakir booking nine players, most for clumsy or late challenges with little malicious intent.
But the attacking intentions of both sides began to fade after halftime, with the only real second-half opportunity coming from a Cristiano Ronaldo free-kick that dipped just over the bar.
The atmosphere in the stadium also became subdued with players' shouts easily audible because the crowd were making so little noise with just one chance coming in the opening period of extra time when Portugal goalkeeper Rui Patricio made a superb save from a close-range effort from Andres Iniesta.
With so much at stake, and with both teams knowing so much about each other, they might have been expected to take a more cautious approach right from the start, but the opening 30 minutes gave little clue of the flat fare that was to follow.
Portugal pressed hard when the world champions had possession and the Spaniards came forward with real purpose in contrast to the more circumspect approach they were criticised for against France in the quarter-final.
Portugal did not sit back and let Spain dominate them in those opening exchanges however.
Ronaldo's expected forays forward and some powerful running from Fabio Coentrao took the game to Spain and their Real club mate Alvaro Arbeloa was fully employed keeping them both at bay.
Spain threatened twice in the opening half hour with Arbeloa and Iniesta going close while at the other end Ronaldo fired a shot just past the post.
Spanish coach Vicente del Bosque started with the physically powerful Alvaro Negredo in attack rather than Cesc Fabregas but the "false number nine" came on early in the second half with Negredo having been well-marshalled by Pepe and Bruno Alves.
The player who showed by far the more physical side to his opponents was Portugal striker Hugo Almeida, who had one thunderous shot at goal in the second half and was a constant worry for the Spanish defence.
Iniesta forced Patricio into his first serious save just before halftime in extra time when Spain finally injected some pace and took control but they could not find a way through the Portugal defence and the match went to penalties.
Spain's Xabi Alonso took the first spot kick which was saved by Patricio but then Moutinho missed for Portugal and after the next five penalties were converted Bruno Alves struck the woodwork leaving Fabregas to take the plaudits.
Fabregas had also scored the decisive spot kick in Spain's quarter-final win over Italy at Euro 2008 but this was sweeter against neighbouring Portugal, for whom Ronaldo did not get the chance to step up to take a penalty in the shootout.
Photograph: Eddie Keogh/REUTERS