After weathering an 80-minute storm, the Foals struck with a Max Kruse penalty, after Mats Hummels was sent off, and Raffael sealed an unexpected win.
The hosts had goalkeeper Marc-Andre ter Stegen to thank for keeping them in the game up to that point while Dortmund coach Jurgen Klopp will be keen to work on his side's shooting ability after they failed to convert numerous chances.
The only consolation for Klopp was rivals Bayern Munich's failure to fully take advantage as Bayer Leverkusen held firm in the face of a dominant display to claim a point.
Toni Kroos put Bayern ahead after half an hour, but Sidney Sam's swift reply earned Sami Hyypia's men a 1-1 draw in a one-sided encounter which the visitors will feel they should have won.
Bayern missed chance after chance but were unable to find a winner, although the point was still enough to take them top on their own.
Eintracht Braunschweig stunned the VW-Arena with their first win of the season coming in the home of their local rivals Wolfsburg.
Karim Bellarabi and Domi Kumbela earned Braunschweig the sweetest of victories with a 2-0 win just 14 miles away from their own home and with a sizeable support their to witness a historic moment in the club's history as they moved off the bottom of the table.
An Adam Szalai brace and Kevin-Prince Boateng's third goal since joining Schalke this summer enabled the Royal Blues to transfer their Champions League form onto the Bundesliga stage with a 4-1 win over 10-man Augsburg.
Sascha Molders gave the visitors the lead in the 10th minute, but as soon as they lost Ragnar Klavan to a red card six minutes later there was only going to be one winner at the Veltins Arena.
Boateng scored the penalty which followed Klavan's dismissal before Hungarian forward Szalai struck twice and young Max Meyer completed the rout with his first Bundesliga goal.
Yunus Malli's last-gasp goal earned Mainz a point and ended their four-game losing streak in dramatic circumstances against Hoffenheim.
The writing appeared to be on the wall yet again for Mainz when they fell two goals behind within 22 minutes, Kevin Volland and Roberto Firmino both netting their fifth goals of the season.
However, substitute Eric Choupo-Moting pulled a goal back and a stroke of luck at just the right moment, with the ball hitting Malli and going in, earned Mainz a 2-2 draw.
Stuttgart remained unbeaten under the guidance of Thomas Schneider, but missed the chance to move up to fourth after being held to a 1-1 draw at home to Werder Bremen.
Martin Harnik scored against his former club in the sixth minute to give Stuttgart a familiar lead since Schneider took charge, but Nils Petersen levelled against the run of play for the visitors before the break.