Netherlands scored twice in the final five minutes to snatch a 2-2 draw with Germany and secure a place in the Nations League Finals.
Ronald Koeman's men had seemed certain to finish second behind France in Group 1 of League A when Timo Werner's first international goal since June and Leroy Sane's second in as many outings had Germany coasting.
Needing only a point to advance, Quincy Promes offered a late lifeline to the outplayed visitors as he cut the deficit in half before makeshift striker Virgil van Dijk completed a remarkable turnaround in the 90th minute with a volley.
The final result was an extension of Germany's annus horribilis as Netherlands rescued a dramatic draw to advance to the final four.
Germany's chance to add a positive finish to a miserable 2018 began brightly as RB Leipzig striker Werner rifled Serge Gnabry's flick-on into the bottom-left corner in the ninth minute.
Toni Kroos helped create the opener and next provided the lofted pass from which Sane doubled the advantage, the Manchester City man regathering possession and beating Jasper Cillessen courtesy of a deflection off Kenny Tete.
Netherlands' hopes appeared to be fading when Ryan Babel limped off clutching his hamstring and his replacement, Javairo Dilrosun, lasted only 20 minutes of the second half before a similar issue curtailed his debut.
Werner had earlier dragged a promising opportunity past the far post, while substitute Marco Reus failed to tee up Sane for a tap-in amid a period Germany would come to rue.
Promes punished some poor defending in the 85th minute and captain Van Dijk then sucked the life out of substitute Thomas Muller's 100th international appearance for Die Mannschaft.
The defender's expert volley from Tonny Vilhena's cross miraculously sent Netherlands through at France's expense and condemned Joachim Low's side to a fifth competitive fixture without victory.
What does it mean? Winning mentality lacking for Germany
What seemed likely to be a lesson of the established order for Netherlands became a reminder of just how much Germany's identity has been lost in recent months.
Low can no longer rely on the heroes of 2010 and yet, for now, he must tread patiently in troubled waters as the emerging generation seeks to discover the competitive nous of the great teams that have preceded them.
Van Dijk the darling of Dutch football
It seems there is little Van Dijk cannot do at the moment as, even during a match in which his side had been breached twice, the defender managed to conjure a moment of inspiration when it mattered most.
Marco van Basten would have been proud of that volley.
Goretzka learns heavy lesson
All Leon Goretzka had to do was toe the ball away from harm on the edge of his penalty area and Germany would have been home and dry.
Instead, the Bayern Munich midfielder was carelessly robbed of possession and Promes was eventually able to curl in the goal that made the stunning late scenes possible.
Along with Switzerland, England and Portugal, Netherlands now have the Nations League Finals to look forward to next June. Low will fix his gaze on the Euro 2020 qualifying draw in December.
|Fielding: The better man won but I lived a dream|
|Rallying Bulls stun Spurs, LeBron and Ball post triple-doubles|
|Latham century puts New Zealand in commanding position|
|Mayfield leads Browns past Broncos|
|Canelo-GGG trilogy? We can make it happen – Alvarez|
|Canelo outclasses Fielding by third-round TKO|
|Farmer retains title prior to Canelo-Fielding bout|
|Qatar unveils Lusail Stadium for 2022 World Cup|
|Lakers pair LeBron, Ball revel in triple-double feat|
|Allegri hails ´great professional´ Ronaldo|
|LeBron, Ball first Lakers team-mates with triple-doubles in same game since 1982|
|Premier League contenders Liverpool ready to win titles – Henderson|
|Hopkins´ two TDs help Texans close in on AFC South title with win over Jets|
|Courtois: Simeone criticises Real Madrid to boost popularity|
|Mourinho in the dark over transfers as Pogba rumours swirl again|
|Mourinho marvels at Salah going nuclear|
|The lucky ones - Mourinho assesses Liverpool´s title charge|
|Juventus boss Allegri turned his back on Ronaldo penalty|
|Dickerson hoping Barkley falls short of breaking his records|
|Bristol shock La Rochelle, Clermont win again|
|LeBron: Meeting Jordan for first time was godly|
|Ronaldo scores Juventus´ 5,000th Serie A goal|
|I was all over the place - Allen reaches Scottish Open final despite hangovers|
|Solari defends wasteful Asensio after slim Madrid win|
|Torino 0 Juventus 1: Ronaldo capitalises on Zaza woe|
|I do my work on the pitch – Icardi unconcerned by Inter contract discussions|
|Lyon defender Rafael set for three months out|
|Inter captain Icardi is the ´perfect´ striker – Spalletti|
|Fulham have to stick together, says Ranieri|
|Nuno hails ´very special´ Wolves achievement after third straight win|
|Stuttgart captain Gentner´s father dies at Hertha fixture|
|Valverde not desperate for new centre-back amid talk of Christensen loan|
|Toulouse and Saracens stay perfect in Champions Cup|
|Kovac lauds Bayern´s best performance of the season|
|Barcelona can get the best out of Coutinho and Dembele, claims Valverde|
|Borussia Dortmund 2 Werder Bremen 1: Alcacer and Reus guarantee top spot for mid-season break|
|Bristol City 2 Norwich City 2: Canaries knocked off their perch despite late equaliser|
|Atletico´s fighting spirit lauded by Simeone, Godin|
|Hodgson relieved to see Palace end Zaha curse|
|Real Madrid 1 Rayo Vallecano 0: Benzema secures steady response to CSKA loss|
|Fulham 0 West Ham 2: Snodgrass, Antonio punish profligate hosts|
|Warnock brands refereeing situation ´a disgrace´ after Watford defeat|
|Inter 1 Udinese 0: Icardi penalty gets lethargic Nerazzurri back on track|
|Wagner retains belief in survival bid despite Newcastle defeat|
|Griezmann feeling the strain after busy 2018|
|Pochettino ´so pleased´ as tired Tottenham scrap to Burnley win|
|Man Utd hand Smalling new contract|
|ES Tunis 0 Al Ain 3: Convincing victory books River Plate semi|
|Championship Review: Bamford fires Leeds to summit, Middlesbrough defeated by QPR|
|Curry reacts to Kings´ trolling with moon landing video|
|Wentz ruled out of Rams clash|
|Pochettino reaches 100 Premier League wins for Tottenham faster than Wenger for Arsenal|
|Real Valladolid 2 Atletico Madrid 3: Griezmann the hero on landmark appearance|
|Silva rues Richarlison´s missed chances at City|
|Gibson has no worries over Proteas batsmen|
|Wolves 2 Bournemouth 0: Jimenez and Cavaleiro score against toothless Cherries|
|Crystal Palace 1 Leicester City 0: Captain Milivojevic earns vital victory|
|Watford 3 Cardiff City 2: Hornets hang on despite late fightback|
|Tottenham 1 Burnley 0: Eriksen snatches victory at the death|
|Huddersfield Town 0 Newcastle United 1: Rondon strike settles scrap|
|Sabres suspend forward Berglund for failing to report to the team|
|Saunders thanks Fury for getting him ´back on the right track´|
|Hannover 0 Bayern Munich 4: Gnabry and Kimmich star in crushing win|
|I admire Sterling – Guardiola|
|City´s strength in depth makes it hard for me – Jesus|
|Jamieson holds slender lead in Malelane|
|Kashima Antlers 3 Guadalajara 2: Comeback win sets up Real Madrid semi-final|
|Hosszu claims fourth Hangzhou gold, Le Clos beaten by Santos|
|Manchester City 3 Everton 1: Jesus at the double as City go top|
|Parker defiant on low blow claims after ending 2018 ´with a bang´|