The Chequered Ones had ostensibly done enough to punch their tickets to the showpiece event in normal time, as Andrej Kramaric and Mario Pasalic cancelled out a first-half Donyell Malen opener at De Kuip.
However, Noa Lang kept his composure to level the scores with seconds remaining in normal time, but Oranje's joy was short-lived, as Bruno Petkovic and Luka Modric sent Croatia through to just their second major tournament final following the 2018 World Cup.
With both teams forced to turn on their Nations League brains after a gruelling domestic season, a cagey and uneventful start was perhaps to be expected in Rotterdam, where chances were at a premium to say the least.
Corners, free kicks and throw-ins were abundant inside the first 20 minutes, although Croatia had the ball in the back of the net in the 25th minute via Modric's volley, but play was pulled back for Pasalic's dangerous attempt, which saw him whack Nathan Ake in the head while going for a scissor kick.
Having survived that incident and a succession of Modric corners, the Netherlands began to turn the screw and nearly succeeded with one of their frequent balls over the top in the 32nd minute, but Teun Koopmeiners volleyed high over the bar.
However, just two minutes later, Oranje would draw first blood, as a slick passing move in and around the Croatia box ended with Mats Wieffer finding Malen, who took one touch before slotting home into the far corner from the right-hand side of the penalty area.
Malen's opener was the only shot on target of an otherwise mediocre first half, but Croatia attempted to up the ante just three minutes after the restart with a Kramaric curler which flashed wide of the post, but the offside flag quickly went up.
Zlatko Dalic's side were soon offered a route back into the game, though, and Cody Gakpo was the culprit, clumsily bringing down Modric inside the area after the Real Madrid man had robbed him of the ball.
Justin Bijlow dived to his right, and Kramaric sent a calm penalty down the middle of the goal to level the scores in the 55th minute, and there was little in the way of a response from Ronald Koeman's side.
As the Chequered Ones began to see more of the ball, their dominance paid off, as with 73 minutes gone, Pasalic beat a stagnant Virgil van Dijk to Luka Ivanusec's cross and guided a side-footed volley into the bottom corner from 10 yards.
Without any real pressure on the ball from the Netherlands, Ivanusec was afforded plenty of time and space to pick out Pasalic, and the Croatians would seemingly ride out six minutes of injury time despite unrelenting pressure from the Dutch.
However, with the final attack in normal time, Croatia failed to deal with Koopmeiners's inswinging cross to the back post, and following a brief episode of pinball, the ball broke for Lang to calmly side-foot a half-volley into the roof of the net and spark delirium for those in blue.
Delirium soon turned into dejection with just eight minutes gone in extra time, though, as Croatia substitute Petkovic restored his side's lead in style, producing a sublime turn to evade Frenkie de Jong before unleashing a thunderous strike into the bottom corner from 25 yards.
From the hero in normal time to the villain in extra time, Lang had a glorious chance to make lightning strike twice in the 111th minute, but the Club Brugge attacker could only hit the side netting.
That miss would prove fatal, as with just three minutes remaining, Tyrell Malacia scythed down Petkovic inside the box, and Modric kept his cool from 12 yards to put the result beyond any doubt.
Petkovic briefly thought he had doubled his tally for the night in injury time, but the offside flag spared the Netherlands a more humiliating defeat - not that Koeman's side were jumping for joy at that disallowed goal, though.
Croatia will now take on the winners of Spain and Italy's semi-final for the chance to lift the trophy, while the losers of that tie will battle the Netherlands in the third-placed playoff.