Zlatan Ibrahimović's dramatic late equaliser put Sweden in a strong position to qualify from Group C as they drew 1-1 with Italy to remain top above Denmark on goal difference.
Antonio Cassano opened the scoring in the first half of a game Italy largely dominated, but Sweden staged a late rally and substitute Mattias Jonson forced Gianluigi Buffon into a fine reaction save after being picked out by Henrik Larsson's penetrating diagonal pass. The pressure paid off with five minutes left when Ibrahimović profited from a goalmouth scramble, acrobatically hooking over Christian Vieri on the line and into the top corner.
Italy coach Giovanni Trapattoni made three changes from the side held to a goalless draw by Denmark, with AC Milan pair Gennaro Gattuso and Andrea Pirlo replacing Cristiano Zanetti and Mauro Camoranesi in midfield and Cassano stepping in for the suspended Francesco Totti. Sweden made one alteration, as right-back Teddy Lucic – injured in the 5-0 win against Bulgaria – was replaced by Mikael Nilsson; Christian Wilhelmsson slotted into the right side of a midfield diamond.
Cassano was handed a free role behind Alessandro Del Piero and Vieri, and immediately caused Sweden problems with his movement. In the third minute his first-time pass sent Vieri clear in the penalty area but after swivelling past Andreas Jakobsson the striker was denied by the onrushing Andreas Isaksson. Five minutes later, Cassano's menacing dribble was halted by Erik Edman but the loose ball dropped for Simone Perrotta whose low drive was parried by Isaksson.
Sweden created their first chance when Ibrahimović released Fredrik Ljungberg on the left and he cleverly back-heeled the ball into Ibrahimović's path only for the striker to shoot over. Most of the pressure was at the other end, however. Cassano's teasing right-wing cross was headed over by Vieri, then Gianluca Zambrotta beat Nilsson before cutting back for Del Piero who side-footed wide.
The energetic Ljungberg posed the occasional threat on the break, and Buffon had to be alert to save at the midfielder's feet, but the vast majority of first-half attacking came from Italy. Isaksson tipped Del Piero's deflected effort round the post and Vieri headed over another good chance before Cassano finally opened the scoring eight minutes before the break.
Christian Panucci delivered an inswinging cross from the right and, with the Sweden defence attempting to play offside, Cassano found himself all alone to coolly beat Isaksson with a glancing header.
Gattuso and Fabio Cannavaro picked up bookings which means they will miss Italy's next match against eliminated Bulgaria, but Italy were soon on top after the restart as Vieri's near-post volley from Panucci's cross flashed wide. Vieri then slipped Del Piero clear through the middle, and with Isaksson stranded on the edge of his area, the Juventus forward scooped the ball over the goalkeeper's head; Jakobsson cleared off the line.
Sweden introduced Kim Källström in place of Anders Svensson on 54 minutes and the midfielder soon produced his team's first effort on target, drilling a low shot straight at Buffon from long range. Italy began to defend deeper as the game moved into its final quarter, and Trapattoni's decision to replace Cassano with midfielder Stefano Fiore with 20 minutes left was a clear indication of his intentions.
Italy were punished by Ibrahimović's late strike, although Vieri twice sent free headers over the crossbar in added time and Panucci headed wide in the final minute as the Azzurri belatedly pressed for a winner.