"It was very difficult for us, Germany were sharper and faster in the first half," said Dutch coach Ronald Koeman.
"We struggled to get back in the second half and pressed.
"They have the chance to solve it, but the fight and confidence that we show is enough for the point."
The draw was enough to send the Netherlands to the League of Nations knockout stage as Group One winners, with the second France, while Germany's bottom team has been relegated to the league & # 39; B & # 39; ahead of Monday's match.
Koeman's side showed plenty of heart against Germany, who were 2-0 up after just 20 minutes.
"I am really disappointed with the results, but throughout the season I have seen more positive than negative things," said German head coach Joachim Loew.
"We were punished and bitter.
"We played well for most matches, but we had to learn how to close everything with a score of 2-0."
Thomas Mueller reached the milestone of Germany's 100 appearances as a substitute for the second half, but Van Dijk reduced any celebrations for the hosts.
After describing 2018 as a "slap in the face" after recording six defeats in the calendar year, Germany showed the "killer instinct" requested by Loew – but only in the first round.
The trio of Serge Gnabry, Sane and Werner, were very effective in Thursday's friendly 3-0 win over Russia, once again causing the Dutch defense to end the problem in the opening 45 minutes.
After starting the process of rebuilding after Germany's poor World Cup appearance, which failed after the group stage, Loew started with only three Brazil 2014 winners at Manuel Neuer, Mats Hummels and Toni Kroos.
Koeman made two changes from Friday's 2-0 win over France, which gave them the chance to qualify on Monday, with Kenny Tete taking over from Denzel Dumfries at right-back and Promes on the right wing in front of Steven Bergwijn.
Germany only needed nine minutes to land the first blow in the European heavyweight clash.
There was little when Gnabry's pass was found by Werner on the edge of the area, but the 22-year-old showed a cool finish by hitting the bottom corner of the net past Jasper Cillessen.
Werner ended his barren pass eight international matches without goals and Sane added a second goal, with the help of deflection, 11 minutes later to the Dutch floor.
Again, there was little when Toni Kroos floated in a long pass to Sane, who stumbled a little, but managed to win the ball and fired home to cut the back of a defender's shoes as he drove past Cillessen.
A hamstring injury to Ryan Babbel forced Koeman to overhaul his attack with Dilrosun from Javairo who arrived just before the first half of the whistle ended.
Werner fired wide after being behind the defense, but since then the Dutch began to take over.
Werner made way for Germany's main playmaker Marco Reus with 27 minutes remaining when Loew also introduced an experienced Mueller, but that was not enough to maintain excellence.
The Dutch scored from their first real attack when Promes fired a shot towards his home in the 85th minute after continued pressure from the hosts.
The scene was set for Van Dijk to finish a fairytale comeback when he produced a finished pounding to delight fans on the trip before the final whistle.