The game never touched the heights and penalties were an almost inevitable outcome given the approach of both sides.
There will now be an intriguing backdrop to the semi-final in Vienna on Thursday, with Spain having beaten Russia - admittedly minus the inspirational Andrei Arshavin - 4-1 in a group game earlier in the competition.
And it was a change of fortune for the Spanish, who have gone out of three major championships on 22 June, the World Cups of 1986 and 2002 and Euro '96 - all in the quarter-finals on penalties.
The opening 45 minutes was a cautious affair, with chances - and quality - at a premium. David Villa, predictably, was the first player to pose a serious threat with a low drive drive from long range that was comfortably held by Italy keeper Buffon.
Fernando Torres had been kept quiet by some trademark Italian defending, but he escaped the shackles after 31 minutes to help set up a chance for David Silva, who curled a shot only inches wide from 25 yards.
Spain tried to break the stalemate by making a double substitution on the hour, sending on Fabregas and Santi Cazorla for Xavi and Andres Iniesta.
But it was an Italian substitute, Mauro Camoranesi, who almost made the breakthrough seconds later when he ended a chaotic goalmouth scramble with a shot that was blocked by the legs of Spanish keeper Casillas.
It had been a frustrating evening for the much-vaunted Spanish strike force of Torres and Villa - and the latter was booked for diving by referee Herbert Fandel after 71 minutes when he tumbled under challenge from Giorgio Chiellini.
Italy keeper Buffon suffered an anxious moment with 11 minutes left when he was forced to punch away a long-range free-kick from Senna.
He had an even bigger scare seconds later when he fumbled a routine shot from Senna, and was relieved to see the ball bounce back into his arms off an upright.
Torres had been disappointing, but it was still a surprise to see him hauled off again by Spain coach Luis Aragones with six minutes left and replaced by Guiza.
Spain had the first chance of extra time, with Silva sweeping an effort just wide with Buffon beaten.
Italy's response saw swift as Casillas turned over a header from Di Natale and Luca Toni headed just over the top.
The stalemate was soon resumed, although Cazorla shot across the face of goal with seconds left as the last chance of avoiding penalties was wasted.
Villa and Fabio Grosso exchanged successful penalties and Cazorla scored for Spain before Casillas saved brilliantly from De Rossi.
Senna and Camoranesi scored, but when Buffon saved from Guiza Italy were back in contention - only for Casillas to repeat his heroics to stop Di Natali's spot-kick.
Fabregas, on as substitute, was left to settle the affair and calmly beat Buffon to spark wild Spanish celebrations.
Spain: Casillas, Sergio Ramos, Marchena, Puyol, Capdevila, Iniesta (Santi Cazorla 59), Senna, Xavi (Fabregas 59), Silva, Villa, Torres (Guiza 85). Subs Not Used: Palop, Albiol, Fernando Navarro, Alonso, Sergio Garcia, Arbeloa, Juanito, De la Red, Reina.
Spain became the first group winners at Euro 2008 to reach the semi-finals. One group winner in the last four is a record low for the competition.
Spain's semi-final appearance is their first in a major tournament since the 1984 European Championship where they eventually lost in the final.
Italy lost a penalty shoot-out at a major tournament for the fifth time, equalling the record held by England.
Italy recorded their seventh goalless draw in 27 European Championship matches, extending their own record. It was Spain's third in 28 matches in the competition.
Spain's unbeaten streak continues and has now reached 20 matches.
Alessandro Del Piero came on as a substitute and therefore played a record equalling 13th European Championship match for Italy.
Bookmark with:
What are these?