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.
|MLS Review: LAFC roll on with Impact win, Galaxy end skid|
|Tabarez confident Suarez will be fit for Copa America|
|Ranieri to pay fine if De Rossi wears special armband in Roma farewell|
|Blue Jays team-mates Biggio and Guerrero make MLB history|
|Aulas: Fekir allowed to leave Lyon|
|Lionel Messi wins sixth European Golden Shoe|
|Mets sign Kemp after losing Cespedes to injury|
|Jaguars´ Fournette happy to have fresh start with new season|
|Curry: Warriors will carry on when Durant returns|
|Blixt leads Charles Schwab Challenge|
|Wydad Casablanca 1 ES Tunis 1: 10-man hosts earn draw in Champions League final opener|
|Yelich´s beer chugging skills convinced Brewers of his back health|
|´That´s not facts´ – Durant disputes idea Warriors are better in his absence|
|Tuchel expects PSG stay despite late-season wobble|
|Afghanistan pull off Pakistan upset|
|Caen relegated to Ligue 2 as Dijon book play-off|
|Teenager Yastremska stands between Garcia and Strasbourg success|
|LeBron ´likes´ Instagram photo of Kyrie in Lakers jersey|
|How Weaver and City´s Wembley heroes paved the way for Guardiola glory|
|Mbappe ensures PSG make Ligue 1 history despite defeat|
|Zverev to face Jarry in Geneva Open final|
|Reims 3 Paris Saint-Germain 1: Final day misery for Tuchel´s men|
|Djokovic smashes Roland Garros floor with medicine ball|
|Djokovic has ´extra motivation´ to prosper in Paris|
|Adam ´Pacman´ Jones announces retirement from NFL|
|Schwab hits the front at Made in Denmark|
|Villas-Boas not interested in return to ´chaotic´ Premier League|
|Pope commits to Burnley after injury woes|
|Fenerbahce face UEFA sanctions after FFP breach|
|Zakarin climbs to stage win, Polanc retains pink jersey|
|Valverde keen to keep Barca focus on Copa final, not his future|
|I want to stay at Juventus - Dybala disputes brother´s claims|
|Federer has no expectations heading into French Open|
|Messi still trying to forget Barcelona´s Anfield nightmare|
|England captain Morgan expected to be fit for World Cup opener|
|Nadal open to grand slam rule changes|
|Jonas Lossl to join Everton on a free|
|Neuer to start for Bayern in DFB-Pokal final|
|Benfica want full €120m release clause for Joao Felix|
|Low welcomes Sane to Bayern rumours|
|Kyrgios withdraws from French Open due to illness|
|Kovac´s Bayern future not in question - Rummenigge|
|Morris not surprised by Lampard´s Chelsea links|
|Reds fall to ruthless Chiefs, Kuridrani stars for Brumbies|
|Villas-Boas expecting Bale to make Premier League return|
|Pique: Anfield opened scars of Rome for Barcelona|
|Osaka wants to channel Melbourne mindset in Paris|
|Cronk´s absence felt as NRL premiers Roosters thrashed by in-form Knights|
|Real Madrid fume at Pochettino´s accommodation joke|
|Halep relaxed ahead of French Open title defence|
|Chiellini would ´hate´ to see former Juventus boss Conte at Inter|
|Oh-no Fernando! Sri Lanka opener taken off on a stretcher following injury|
|A manager of Manchester is coming - Allegri mischievously drops Guardiola hint|
|England captain Morgan sent for x-ray on finger injury|
|Ronaldo is a ´deity´ - Chiellini|
|Should I bet the Eiffel Tower? - Dani Alves confident Neymar will stay at PSG|
|Antetokounmpo insists Bucks are still fighting in Raptors series|
|Wenger: Europa League final being in Baku is ´a nightmare´|
|ATP adds Federer-backed Laver Cup to calendar|
|Aaron Rodgers no match for Packers team-mate Bakhtiari, MLB star Yelich in beer-chugging contest|
|Raptors must live for the moment as NBA Finals beckon, says Leonard|
|Raptors fan Drake: I love this team and we´re going to the NBA Finals|
|Copa del Rey final: Valencia can see a bright future after 11 years in the shadows|
|Majestic Messi, Bale´s bliss, Sevilla slaughtered – Barcelona´s five successive Copa del Rey finals|
|He´s a winner - Mourinho has no doubts over Cech´s commitment amid Chelsea links|
|French Open 2019: The top Opta facts ahead of Roland Garros|
|DFB-Pokal final 2019: Are RB Leipzig the new pretenders to Bayern Munich´s throne?|
|French Open 2019: Djokovic has an opportunity to come full circle at Roland Garros|
|Another Champions League final loss would be hard on Klopp – Mourinho|
|Antetokounmpo hurt his ankle late in Game 5, says Budenholzer|