The defeat leaves Dortmund 16th in the table and among the relegation places as Robben scored his sixth goal in his last six games against Borussia to add to their misery.
With seven points from their first ten Bundesliga games it is the worst start to a league season in Dortmund's history.
They are also the only team in Germany's top flight to have lost seven games this season.
"It's tough. We invested a lot and played the best 1st half for a long time and still got nothing, but the defeat wasn't undeserved," admitted Dortmund coach Jürgen Klopp.
Marco Reus gave Dortmund a first-half lead only for Bayern's striker Robert Lewandowski to score against his old club before Robben converted an 85th-minute penalty.
"We've kept our lead in the league, it was a big day for me," said Lewandowski.
"Borussia are in a tough situation, but they will end up in the Champions League again next season, I am sure."
The Allianz Arena clash got off to a frantic start as Robben and Dortmund's Henrikh Mkhitaryan both clipped the woodwork in the opening five minutes.
Reus, who Bayern chairman Karl-Heinz Rummenigge has admitted Munich want to sign at the end of the season, headed home an inch-perfect Pierre-Emerick Aubameyang cross on 31 minutes.
But with the lion's share of possession, Bayern battered the Dortmund defence and their goalkeeper Roman Weidenfeller kept Borussia in the match with a string of saves.
The hosts drew level when Lewandowski snapped up a loose ball on the edge of the area and drove his shot inside the far post on 72 minutes.
Robben then broke Dortmund hearts when he converted a penalty after Borussia centre-back Neven Subotic held back Bayern wing Franck Ribery in the area.
Robben returned to haunt Dortmund having scored the winner in the 2013 Champions League final and he also netted in Bayern's 2-0 extra-time win over Dortmund in May's German Cup final in Berlin.
The win keeps Bayern four points clear and there is now a huge 17-point gap between Munich and Dortmund in the table.
Earlier, VfL Wolfsburg climbed to second with a 4-0 hammering of VfB Stuttgart as ex-Chelsea midfielder Kevin de Bruyne shone.
De Bruyne netted his first goal of the season and created another two as Wolves picked up their sixth straight win in all competitions.
The 23-year-old provided a free-kick for Robin Knoche to head Wolves into a 2-0 lead at the break after Croatia international Ivan Perisic's opening goal for the guests.
Belgium's de Bruyne then volleyed home from close range on 48 minutes before robbing Moritz Leitner of possession and providing Perisic with his second goal on 88 minutes.
A Rafael van der Vaart penalty sealed Hamburg's 1-0 win at home to Bayer Leverkusen which lifted the hosts out of the bottom three.
Hamburg won a bad-tempered affair which saw nine yellow cards – six were handed out in the first half alone — after two separate scuffles broke out.
Freiburg, who are at Cologne on Sunday, went bottom of the table after Werder Bremen moved up to 17th as caretaker coach Viktor Skripnikas got their first win of the season.
Ex-Chelsea and Wigan striker Franco di Santo netted both goals in a 2-1 victory over Mainz.
Hanover 96 went sixth with a 1-0 victory over Eintracht Frankfurt.
Borussia Moenchengladbach can reclaim second and equal the club's 40-year-old record of 17 games unbeaten when they host Hoffenheim, who have also yet to lose this season, on Sunday.
On Friday, Roberto di Matteo picked up his third win in four matches as Schalke 04 coach as Klaas-Jan Huntelaar scored their first-half winner in a 1-0 victory at home to Augsburg.
The result masked a poor performance from the Royal Blues who have moved up from 12th to seventh in the table since di Matteo took over from Jens Keller.