Winner not enough
A Martin Petrov penalty had given Plamen Markov’s side the lead on the stroke of half-time and although Simone Perrotta equalised three minutes after half-time, Sweden's late equaliser in Porto made Antonio Cassano's last-gasp winner academic.
Corradi in
There was a surprise in the Italian lineup with Christian Vieri listed among the substitutes. The forward had been struggling with a knee injury before the game, and Bernardo Corradi came in for his first start of the tournament joining Cassano and Alessandro Del Piero in attack. As expected, Marco Materazzi and Stefano Fiore deputised for the suspended Fabio Cannavaro and Gennaro Gattuso at centre-back and left midfield respectively.
Bulgarian changes
Bulgaria, already eliminated after defeats by Sweden and Denmark, brought four players in for their first start of the finals. Milen Petkov, replaced suspended captain Stilian Petrov in central midfield and the back four was completely revamped with Daniel Borimirov coming in for Vladimir Ivanov at right-back alongside Zlatomir Zagortchitch and Predrag Pazin in the centre. Ilian Stoyanov slotted in at left-back while Zdravko Lazarov was handed a role on the right side of midfield with Georgi Peev on the bench.
Del Piero shoots wide
In a cagey opening, Italy enjoyed the bulk of possession without creating any openings and Bulgaria were the first to threaten on 13 minutes. Martin Petrov picked up a loose ball but his shot was saved by Gianluigi Buffon. From the resulting corner, Italy broke upfield and Corradi was denied by Zdravko Zdravko, Del Piero putting the rebound wide.
Italy behind
The game was opening up now as the ball zipped along the greasy surface and Italy were beginning to grow in confidence. However, they could not force in a shot and right on half-time when Materazzi was adjudged to have hauled down Dimitar Berbatov. Martin Petrov confidently despatched his spot-kick past Buffon for Bulgaria's first goal of the tournament. They then introduced Valeri Bozhinov for Zoran Jankovich at the break.
Perrotta levels
Italy had never come from behind to win a UEFA European Championship final tournament fixture before tonight, but within three minutes of the restart here they were level. A cross by Gianluca Zambrotta was only cleared as far as Cassano, whose shot crashed off the underside of the bar and Simone Perrotta reacted quickest to prod the ball past Zravkov for his first international goal.
Vieri arrives
Trappatoni felt the game was there to be won now and immediately brought on Vieri for Corradi as the Italians went in search of a winner. His first meaningful contribution arrived on 59 minutes when he outjumped Zagortchitch to head just wide.
Late push
With Denmark leading Sweden 2-1, Italy had every reason to push forward and they kept Bulgaria under pressure in the last ten minutes. However, Bulgaria - hoping for their only point of the finals - were holding on.
Italian heartbreak
Victory would still have taken Italy through. As the game entered five minutes of added time, though, news filtered through that Sweden had equalised, meaning that a win would now see Italy out as they had scored fewer goals in their draws with Denmark and Sweden than the Scandinavian pair in the three team's head-to-head reckoning. Cassano did indeed grab a winner, but the celebrations were understandably muted.
Italy Goals: Perrotta 48, Cassano 90