Germany, who led 2-0 after only 20 minutes through goals by Timo Werner and Leroy Sane, were punished for not being clinical enough in the second half.
Liverpool defender Van Dijk volleyed home a cross in added time to complete the Dutch fight back after Quincy Promes had scored their first goal on 85 minutes.
The Dutch - for whom Georginio Wijnaldum played an hour - therefore snatched top spot ahead of world champions France and will join Portugal, England and Switzerland in next summer's final tournament.
Germany face the Netherlands on Monday in their last Nations League group game, having already been relegated, and are looking to cap a awful year with a good performance. The semi-finals of the knockout competition take place on June 5 and 6, with the third-place playoff and final taking place on June 9.
The culmination of this particular streak was also a first; never before had Germany lost by three goals or more in 23 meetings with the Netherlands, who happen to be their next opponents following the 3-0 win over Russian Federation last week.More news: RBI to set up expert panel to examine economic capital framework
More news: Instagram declares war on fake likes
More news: Meghan Markle Shows Off Royal Baby Bump in Stunning Embellished Top
"It was very hard for us, the Germans were sharper and faster in the first half", admitted Koeman.
"Of course, with Dwight [Lodeweges] and Kees van Wonderen we went through different scenarios prior to the game, and also that we had to force something in the final phase".
The trio of Serge Gnabry, Sane and Werner, so effective in Thursday's 3-0 friendly win over Russian Federation, again caused the Dutch defence no end of problems in the opening 45 minutes.
Prior to that, they went three matches without scoring, representing another unwanted record for Low.
Despite finishing the year with a 3-0 win over Russian Federation last Thursday and a draw with the Dutch, 2018 has been a nightmare year for the Germans.