- Donyell Malen (34')
- Noa Lang (90'+6')
- Andrej Kramaric (55' Pen)
- Mario Pasalic (72')
- Bruno Petkovic (98')
- Luka Modric (116' Pen)
Croatia will play against either Italy or Spain, who face off in the second semifinal in Enschede on Thursday, for a first major title as they continued their form from last year's World Cup in Qatar, where they finished third.
The Netherlands lost 1-0 to Portugal in the first final of the biennial Nations League during Ronald Koeman's first stint as coach of the national team. Two years later, in 2021, Karim Benzema and Kylian Mbappe scored as France beat Spain 2-1 to take the title.
Substitute Bruno Petkovic curled home a stunning shot from the edge of the penalty area eight minutes into extra time to put Croatia on their way and Luka Modric made sure of their triumph with a late penalty, their second of the game.
With Modric edging closer to the end of a stellar career, Croatia coach Zlatko Dalic was hopeful he would be able to call on the playmaker for some time to come.
"He can be the one to help us win the gold medal," Dalic told reporters, before addressing Modric's future. "Luka will decide for himself after the finals, but with him we are way better, we have far more quality."
The Dutch, hosting the four-nation tournament, had forced extra time with a last-gasp equaliser to ensure it finished 2-2 after 90 minutes despite being largely outplayed in front of their home fans at the Feyenoord Stadium.
"There were clear moments that showed where we need to improve," Koeman told reporters. "[Croatia] were just a bit smarter, a bit more secure in possession, and overall they deserved the win."
Donyell Malen handed the Netherlands a 34th-minute lead before Andrej Kramaric equalised from the penalty spot 10 minutes into the second half.
Croatia then went ahead through Mario Pasalic in the 73rd minute before Noa Lang side-footed the ball into the roof of the net to equalise six minutes into stoppage time.
The Netherlands' first goal came against the run of play, but at the end of a swift series of passes that saw both quick feet and precise thinking.
Cody Gakpo set it up by winning possession and five passes later, Mats Wieffer teed up an unmarked Malen to fire home.
But it was the street-smarts of Croatia captain Modric that got them level, stealing the ball in the Dutch penalty area from Gakpo, whose instinctive reaction was to tug at the 37-year-old veteran and send him tumbling to the ground to win a penalty.
Kramaric tucked it away comfortably, after which Luka Ivanusec played a pass into Pasalic, that he fired home on the turn despite a host of Dutch defenders around him to give Croatia a 2-1 lead.
But a desperate last attack saw the Dutch take advantage of Croatia's failure to clear their lines with Lang perfectly placed to equalise and force the game into extra time.
Parity, however, did not last long. Modric's pass put Petkovic through on goal and he curled the ball into the net with a shot worthy of winning any cup tie.
Modric completed the win with the late spot kick to seal another outstanding individual performance.
In his first games back in the job in March, Koeman's side were crushed 4-0 by France and only laboured to a 3-0 win against minnows Gibraltar.
Koeman said his team had definitely improved from those matches, but they were not yet at the level they hope to reach.
"We clearly had a team now that had the right energy, that put up a fight. That's something we can build on," Koeman said. "But we played against a Croatian team that showed why it finished second and third at the most recent World Cups. We need to learn from that."
The Netherlands now play in the third-place playoff game against Thursday's losers in Enschede on Sunday and will resume their Euro 2024 qualification campaign in September with matches against Greece and Ireland.
- Istvan Kovacs