The Italians celebrate their late equaliser against Croatia. (Photo by Claudio Villa/ Getty Images.) 

Italy scored a dramatic equaliser at the death to guarantee their passage through to the last 16 of the UEFA European Championship against an unfortunate Croatia.

The first half was cagey and saw both sides have only glimpses of the opposition's goal. The best chance of the half fell to Alessandro Bastoni, whose header was expertly saved by Dominik Livakovic.

The second half was a much livelier affair, as Croatia were granted a penalty through Davide Frattesi's stray hand in the Italian box.

Luka Modric stepped up but saw his spot kick saved by Gianluigi Donnarumma, but one minute later Modric had his goal when he was the quickest to react from a rebound.

The remainder of the game saw Croatia sit back and attempt to hold on to their slender lead, but honestly, the Italians did not offer much until the last 15 minutes or so.

But in the 99th minute, Mattia Zaccagni found himself in acres of space on the left wing and curled in a gorgeous effort to grant his side qualification to the next round and all but eliminate the experienced Croats.

A dramatic and emotional night in Leipzig, but who were the standout performers in the game?

Dominik Livakovic – 7

The Fenerbahce shot-stopper was in fine form in Leipzig.

He produced several high-quality saves with the pick of them coming from Alessandro Bastoni's point-blank header in the first half.

His positioning was also excellent, and he was quick off his line on a couple of occasions.

Livakovic could do nothing to stop Mattia Zaccagni’s excellent strike in the dying embers of the game.

Josip Stanisic – 7

Stanisic got through a lot of work from right back and never let up.

He was vital in keeping the dangerous Federico Dimarco quiet and delivered a couple of enticing balls into the Italian box.

Josip Sutalo – 7

The Ajax centre-back was solid throughout the evening. He got in front of a couple of shots and was key in keeping Italian forwards quiet.

He has very good chemistry with his partner, Pongracic.

Marin Pongracic –  7

Everything that was said about Josip Sutalo could be said about Marin Pongracic.

The Leece man was physically dominant and made a couple of the Italians look quite average.

To add to that, his passing - especially long-distance passing - was excellent and often accurate.

Josko Gvardiol – 7

Josko Gvardiol returned to the stadium he called home for two years and played very well.

He offered a lot going forward and looked every bit of the player we saw at the back end of the Premier League season.

The Manchester City defender often drifted into midfield and looked amazingly assured.

Luka Modric – 8

It was a night of mixed emotions for the Croatia captain.

He stepped up when his side won a penalty, only to see his spot-kick saved by the menacing Gianluigi Donnarumma. Many players would have allowed their heads to drop after seeing a penalty saved, not Luka Modric.

A solitary minute later, Modric was the quickest to react in the box to put his country one ahead in the 55th minute.

Aside from the goal, his passing was excellent; he showed desire and worked himself into the ground.

He was taken off with 10 minutes to go as his side attempted to defend their narrow lead.

If this is to be the midfield maestro’s final appearance in a Croatia shirt, then it surely goes down as one of the greatest international careers of all time.

Marcelo Brozovic – 8

Marcelo Brozovic was the only player on the pitch who was better than Modric.

The former Inter Milan midfielder delivered a scintillating all-round midfield performance.

He was sensational going forward with driving runs and line-breaking passes. Croatia’s front line did not have the greatest night, so the Croats often looked to Brozovic to make the runs that the forwards were failing to make.

Defensively he broke up many Italian counterattacks with crunching tackles.

Mateo Kovacic – 7

Mateo Kovacic delivered a performance that we have come to know from him.

He looked elegant when on the ball and often found teammates with a wide array of passes.

He is such an intelligent and important player for his country that some eyebrows were raised when he was brought off by Zlatko Dalic in the 70th minute.

Luka Sucic – 6

The RB Salzburg winger looked lively in the opening minutes and tested Donnarumma early on, with a shot from distance.

As the game progressed, Luka Susic’s involvement waned.

Susic had an incredibly difficult time competing with the exceptional Riccardo Calafiori and could not force his way into the game.

Andrej Kramaric – 5

The experienced striker did not have a bad game, but it was hardly his finest outing either.

He found himself in a battle with the Italian centre-backs, which they often got the better of.

The Hoffenheim forward put himself about to no avail but worked extremely hard.

Mario Pasalic – 3

The Atalanta winger was dragged off at halftime, and rightly so.

Pasalic had no impact on the game whatsoever and was firmly in the back pocket of the Italian defence.

Substitutes:

Ante Budimir – 6

Came on at the break to shake things up and he managed to do so.

He posed more of a physical threat to the Azzurri’s defence than any other Croatian.

The Osasuna striker was unlucky not to score when he was denied by a fantastic save from Donnarumma.

Ivan Perisic – 6

The experienced utility man was brought on to try and maintain his side’s lead.

Croatia did not have much of the ball while he was on the pitch, so he could not contribute too much.

Luka Ivanusec – 6

Similarly to Ivan Perisic, Luke Ivanusec was brought on to give his side a fresh pair of legs.

The Feyenoord winger did not see much of the ball.

Lovro Majer – 6

Josip Juranovic – 6

Gianluigi Donnarumma – 8

Gianluigi Donnarumma was nothing short of extraordinary in this game and Italy owe a lot to their captain.

He made a good save early on from Sucic's effort and looked solid throughout the first half.

His save of Modric’s penalty was a great one, as he dove to his left to deny the experienced midfielder.

Just a minute later he produced another outstanding save from Budimir, but his defence let him down, as Modric prodded in the rebound from close range.

He was cool as could be when it came to collecting crosses and looked confident with the ball at his feet.

Matteo Darmian – 6

The former Manchester United defender had a satisfactory game but was not quite at the same level as one or two of his teammates.

He was safe with his passing and looked secure with the ball.

He should have done much better with a chance that fell to him late on, but it was clear that fatigue had set it by that point. 

Giovanni Di Lorenzo – 7

The Napoli full back was very good, especially going forward.

His position seemed ambiguous, but he thrived in that role.

He was popping up all over the pitch and delivered some brilliant crosses to the box, which the Italian forwards could not make the most of.

Alessandro Bastoni – 7

The partnerships between Alessandro Bastoni and Riccardo Calafiori has the potential to blossom into something special and once again the pair played very well together.

They have clearly defined roles and know each other strengths and weaknesses, which was evident throughout.

Bastoni will feel as though he should have scored a couple of goals, but misplaced a couple of headers.

Riccardo Calafiori – 8

We are running out of superlatives for the Bologna centre back.

Once again tonight he looked well beyond his years and often found himself advancing into the midfield. He won all his aerial duals and made several vital interceptions.

He capped off his stellar performance with the assist for the dramatic Italian equaliser.

If Italy are to do well in this tournament, they are going be reliant on Calafiori.

Federico Dimarco – 5

Dimarco is an incredibly talented player, but tonight was not his night.

He was ineffective and looked timid in his ventures forward.

He was substituted on the hour mark and Italy looked better for it.

Nicolo Barella – 7

Nicolo Barella delivered a quality performance in which he displayed an excellent range of passes.

He always seems intent on moving the ball forward and tonight was no different.

There was a period when his side were seriously under the cosh, but his positive style helped lift them out of their slump.

Jorginho – 7

The metronome of Luciano Spalletti’s team.

The Brazilian-born midfield kept a cool head when his side went behind and kept his team on track.

He completed 73 out of his 77 attempted passes, which is incredibly impressive when you consider just how hotly contested this game was in the middle of the park.

A fine display from the Arsenal man.

Lorenzo Pellegrini – 7

The Roma midfielder had to have picked up a knock to be taken off after just 45 minutes.

He was vital for his side when they did not have the ball, often leading the press and finding some success with it.

When the Italians did have the ball, Pellegrini often popped up in tiny pockets of space and often his compatriots an option.

Giacomo Raspadori – 7

This was Giacomo Raspadori’s first start in the competition, and he probably did enough to get himself a place in the starting XI for the next game.

He dropped slightly deeper than his striker partner Mateo Retegui and attempted to be the creative force the Italians needed.

He created four chances, the most of anyone on the pitch.

Mateo Retegui – 6

Retegui was also making his first start of the tournament, unlike his fellow forward Raspadori, the Genoa striker looked slightly off the pace.

He has the least touches of anyone on the pitch with just 29 in the 90 minutes.

It will be an interesting decision to see who starts when Italy play Switzerland out of Retegui and Gianluca Scamacca.

Substitutes:

Davide Frattesi – 6

Came on at the break and delivered an average performance.

It was Frattesi’s errant hand that gave Croatia the penalty.

Federico Chiesa – 7

There was a period in the game where it looked as though the Italians were lacking any drive and it appeared as though they were accepting defeat.

Chiesa did everything he could to get his side back into the game.

He was moving at twice the speed of many of his teammates and was getting visibly frustrated by the lack of quality from his fellow countrymen.

His runs were menacing, and his passing was quick. Debatably should have started the game.

Gianlucca Scamacca – 6

Nicolo Fagioli – 6

Mattia Zaccagni – 7

In all honesty, Mattia Zaccagni did not do much when he came on the pitch. But the one thing he did do, he did extremely well.

His last gasp for his country was an extraordinary curling finish.

It is a terrific story for the Cesena native. Under Roberto Mancini, he was frozen out, with fears over his discipline.

He put all those worries to bed with his first-ever international goal.