Spain goalkeeper 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.
"I had a funny feeling about the penalties and I was thinking about them this afternoon," said Fabregas.
"They told me intially to take the second one but I said no give me the fifth as I had this premonition.
"When I stepped up to take the penalty I said to the ball that we had to make history and it shouldn't let me down.
Portugal coach Paulo Bento added: "If I had to choose a way of losing I wouldn't choose this way... but Spain are a great team and we can leave with our heads high."
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 team-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 half-time 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 conv
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.