Joachim Low's side lost in Hamburg after debutant Donyell Malen's late effort for the visitors as the home side failed to pick up a point for the first time in the campaign.
Serge Gnabry scored for the Germans after nine minutes before new Barcelona signing Frenkie de Jong responded for the Dutch.
A Jonathan Tah own goal with less than an hour to play gave the travelling Dutch fans something to cheer about before Toni Kroos equalised from the spot.
PSV Eindhoven's 20-year-old Malen then beat Manuel Neuer with a volley on 79 minutes and Liverpool midfielder Georginio Wijnaldum secured three points in injury time.
In Trnava, Croatia retained top spot in Group G with a 4-0 thumping of Slovakia as Nikola Vlasic, Ivan Perisic, Bruno Petkovic and Dejan Lovren all got on the scoresheet.
Also in that pool, Wales survived a scare to beat lowly Azerbaijan 2-1 thanks to Gareth Bale's 84th-minute header.
Elsewhere, Slovenia saw off previously unbeaten Poland 2-0 in Ljubljana despite a strike-force of Robert Lewandowski and Krzysztof Piatek starting for the visitors.
Belgium maintained their perfect start to qualifying, easing past San Marino 4-0 as Michy Batshuayi netted twice, and Scotland's hopes of progression took a blow with a 2-1 loss at home to Russia despite John McGinn's 11th-minute effort.
On Saturday, the pick of the ties sees World Cup winners France host Albania looking to respond after a defeat by Turkey, who welcome Andorra, in June.