Croatia are one win from their first major title after beating hosts the Netherlands in a dramatic Uefa Nations League semi-final.
Substitute Bruno Petkovic struck from distance in extra time before Luka Modric’s penalty settled a remarkable game in Rotterdam.
A 96th-minute Dutch equalizer from Noa Lang had denied Croatia in normal time.
But Zlatko Dalic’s side will now play Italy or Spain in Sunday’s final, while the Dutch face a third-place play-off.
“It’s a victory for the Croatian people, we beat the Netherlands in front of their fans, Croatia has one more medal,” Dalic told Croatia’s Nova TV afterwards.
“It’s impossible, unreal, but she deserves it. Surely this is a victory which will go down in history.”
Croatia had seemed destined for the final when Andrej Kramaric’s penalty and a Mario Pasalic volley put them ahead after Donyell Malen’s opener.
But Lang’s last-gasp hooked finish leveled the game at 2-2.
Croatia, though, picked themselves up and Petkovic – introduced at the start of extra time – slammed a fine strike past the Netherlands keeper Justin Bijlow.
Their victory was sealed by 37-year-old talisman Modric from the penalty spot with four minutes left, after he was felled by a clumsy Tyrell Malacia challenge.
It means Croatia have reached just their second international final, following the 2018 World Cup where they were beaten 4-2 by France.
“We have bronze and silver, let’s go for gold so that we can finish this story,” added Dalic.
For the Dutch, their international drought trophy now extends beyond 35 years – they have not won a major title since the 1988 European Championship.
It also continues Ronald Koeman’s inauspicious start to his second spell as the Netherlands manager, having lost 4-0 to France in a Euro 2024 qualifier in March.
Magical Modric close to international glory
Coming at the end of a long season – Nathan Ake, Denzel Dumfries and Marcelo Brozovic all played just four days after featuring in the Champions League final – both sides struggled to reach a competitive tempo in the early stages.
But, by the end, fans inside De Kuip had witnessed a frenzied thriller.
The Dutch, roared on by a colorful and boisterous crowd, found their first rhythm as Malen opened the scoring in 34 minutes.
A nice passing move from the hosts reached the Borussia Dortmund striker 16 yards out, and he slotted into the bottom corner.
Croatia, however, controlled possession better and eight minutes after the interval, Modric – making his 165th international appearance – capitalized on a loose touch from Cody Gakpo and was brought down in the area by the Liverpool forward. Kramaric calmly slotted the penalty down the middle.
Croatia, who came from behind to beat Canada, Japan and Brazil at the World Cup in Qatar last year, looked to have completed yet another turnaround with 18 minutes to play. Luka Ivanusec lifted in a cross which Pasalic swept in the first-time from 10 yards.
The Netherlands – with former Manchester United loanee Wout Weghorst brought on as a substitute – bombarded the Croatian box in response with crosses and long balls, finding reward in the sixth minute of stopping time as Lang cleverly struck home a loose ball.
But this Croatian side has built their reputation on never knowing when to quit. Their approach was exemplified by Modric, who claimed his side’s fourth goal and is now within reach of historic international silverware to go with his trophy-laden club career at Real Madrid.
- 22DumfriesSubstituted forLangat 85′minutes
- 4van Dijk
- 5AkéSubstituted forMalaciaat 105′minutesBooked at 116mins
- 6WiefferSubstituted forWijnaldumat 75′minutes
- 21F de JongBooked at 38mins
- 18MalenSubstituted forBergwijnat 75′minutes
- 20KoopmeinersBooked at 93mins
- 11SimonsSubstituted forWeghorstat 64′minutes
- 9It’s okaySubstituted forde Roonat 105′minutes
- 15de Roon
- 1LivakovicBooked at 90mins
- 22JuranovicSubstituted forStanisicat 79′minutes
- 6SutaloSubstituted forPetkovicat 90′minutes
- 10ModricSubstituted forBarisicat 119′minutes
- 11BrozovicBooked at 63mins
- 8KovacicBooked at 17minsSubstituted forMajorat 85′minutes
- 15ArticleicBooked at 24mins
- 9KramaricSubstituted forErlicat 90′minutes
- 16IvanusecSubstituted forVlasicat 78′minutes
- István Kovács
Match ends, Netherlands 2, Croatia 4.
Second Half Extra Time ends, Netherlands 2, Croatia 4.
Offside, Croatia. Bruno Petkovic tries a through ball, but Lovro Majer is caught offside.
Attempt missed. Ivan Perisic (Croatia) left footed shot from outside the box is high and wide to the right from a direct free kick.
Lovro Majer (Croatia) wins a free kick in the attacking half.
Foul by Tyrell Malacia (Netherlands).
Substitution, Croatia. Borna Barisic replaces Luka Modric.
Goal! Netherlands 2, Croatia 4. Luka Modric (Croatia) converts the penalty with a right footed shot to the bottom right corner.
Tyrell Malacia (Netherlands) is shown the yellow card for a bad foul.
Croatian penalties. Bruno Petkovic draws a foul in the penalty area.
Penalty conceded by Tyrell Malacia (Netherlands) after a foul in the penalty area.
Mario Pasalic (Croatia) hits the bar with a right footed shot from the center of the box.
Attempt blocked. Marcelo Brozovic (Croatia) left footed shot from the center of the box is blocked. Assisted by Ivan Perisic.
Bruno Petkovic (Croatia) wins a free kick in the defensive half.
Foul by Marten de Roon (Netherlands).
Foul by Domagoj Vida (Croatia).
Wout Weghorst (Netherlands) wins a free kick on the right wing.
Attempt missed. Noa Lang (Netherlands) right footed shot from a difficult angle on the left is close, but misses to the left.
Attempt saved. Steven Bergwijn (Netherlands) right footed shot from the right side of the box is saved in the center of the goal. Assisted by Marten de Roon.
Offside, Croatia. Nikola Vlasic tries a through ball, but Lovro Majer is caught offside.