By SABC Sport
24th June 2024
Just moments after seeing his second-half penalty saved, Luka Modric fired Croatia ahead from close range in the 55th minute.
Italy looked to be left to rely on other results to progress as one of the best third-placed teams before Lazio winger Zaccagni curled home a superb strike in the eighth minute of stoppage-time.
Croatia were well beaten by Spain in their opening Group B game and then conceded a late equaliser to draw 2-2 with Albania, which left them facing an uphill task to reach the knockout stage.
Zlatko Dalic's side started brightly, with Luka Sucic sending a rising 25-yard drive towards the top corner which Gianluigi Donnarumma pushed away at full stretch.
Italy, looking to recover from their own defeat by Spain, went close when a header from Genoa striker Mateo Retegui was deflected wide off Croatia defender Josko Gvardiol.
The Azzurri threatened again just before the half-hour mark after Nicolo Barella clipped over a cross from the right which floated through the six-yard box to Inter team-mate Alessandro Bastoni, and the defender's powerful header was tipped over by Dominik Livakovic.
The Croatia keeper was soon called into action again as he got down to save a low 20-yard effort from Lorenzo Pellegrini.
Croatia were awarded a penalty in the 54th minute following a VAR review for handball by Italy substitute Davide Frattesi, only just sent on at the start of the second half, after Dutch referee Danny Makkelie had checked the pitchside monitor.
Modric's spot-kick, though, was saved by Donnarumma low down to his left.
The Croatia fans behind the goal, however, were soon celebrating when Modric slammed home a rebound after Donnarumma had produced another fine reaction stop from Ante Budimir at point-blank range - which saw the 38-year-old Real Madrid midfielder become the oldest scorer in the tournament's history.
Centre-back Bastoni almost produced a swift response but headed over from a corner as Croatia continued to hold a strong defensive line despite being pressed deep.
Federico Chiesa was played into the right side of the Croatia penalty area and sent a low cross through the six-yard box, where Gianluca Scamacca was just not able to get a final touch.
Just when it seemed Croatia had done enough, Italy struck in the last minute of added time when Riccardo Calafiori played in Zaccagni on the overlap down the left - and the Lazio frontman curled a sublime effort into the top right corner.
The dramatic finish sees Italy finish second behind group winners Spain, who beat Albania 1-0 in Dusseldorf
Croatia, who have two points, must wait on other results to see if they can qualify for the last 16.