The Netherlands international had the chance to rescue a point for the Bavarians late on, but saw his finish from the spot saved as BVB achieved a crucial victory.
After an exciting first half, which offered no goals but plenty of action, Robert Lewandowski popped up with a strike after the break to seal three decisive points for Jurgen Klopp's men, who now find themselves with the upper hand in the race for the league crown.
The match got off to an exciting start as there were three good chances in less than five minute after the first whistle. First, Mario Gomez saw a header from inside the box saved, and shortly after Jakub 'Kuba' Blaszczykowski fired wide in a one-on-one with Manuel Neuer.
The Bayern Munich goalkeeper was called into action once again moments later when he pulled off an immense reflex save to deny Kevin Grosskreutz from close range, and then managed to parry a subsequent shot by Lewandowski.
The tempo dropped in the following minutes as most of the action commenced in the center of the pitch. In a rare chance in the final third, an opportunistic long pass to Lewandowski in the 20th minute almost reached the striker, who was, however, beaten to the ball by Neuer.
Around the half-hour mark Toni Kroos send a crashing drive from outside the box just wide of the right post and shortly after Kuba sent a poor effort at the goalkeeper after winning the ball off Franck Ribery.
In the 37th minute Lewandowski rattled Bayern Munich's left post with a towering header from inside the box as the game was slowly trickling towards halftime. Indeed, this episode proved to be the final moment of interest for the first period.
Shortly after the restart Kuba had a low shot from range saved by Neuer in the right corner as neither team seemed able to get anywhere near the opposition's penalty area.
In the 50th minute a header from Shinji Kagawa was easily claimed by the goalkeeper as chances were few and far between in front of both goals. On the hour mark Ribery had a finish from the left side of the box fly just wide as Bayern Munich was slowly gaining momentum.
The Bavarians saw more of the ball in the following minutes and were taking advantage of Dortmund's sloppy passing to launch counterattacks. In a rare chance for the German champions, Kagawa sent a low shot from outside the box wide of the right post.
Against the run of play, however, Lewandowski opened the scoring. An opportunistic strike from well outside the box reached the Polish striker and he backheeled past Neuer as Robben was keeping him onside well behind Bayern Munich's defensive line.
The Bavarians threw everything forward in the final minutes of the game and won a penalty in the 82nd minute. Robben, however, saw his finish from the spot saved as Jupp Heynckes' men were set for a bitter defeat, which would effectively put an end to their title challenge.
The Dutchman missed once again this time from close range in the final minutes of the game, and in the following attack Lewandowski hit the bar. Despite the late drama, the match ultimately ended 1-0 in favor of Klopp's team.
Following tonight's result, Borussia Dortmund is first in the standings with 69 points, while Bayern Munich is second with 63. BVB's next league game is a visit to Schalke on Saturday, while the Bavarians host Mainz on the same day.