Netherlands winger Robben popped up in the 107th minute at the Olympiastadion in Berlin to set the Bavarians on the way to a fourth trophy in their first season under the stewardship of former Barcelona boss Pep Guardiola.
Dortmund pressed in vain for an equaliser, but the match was settled in injury time when Muller broke clear to grab a second for Bayern.
Their success was not without fortune, as Dortmund were denied a goal midway through the second half of normal time when a header from Mats Hummels appeared to cross the line.
Victory for Bayern was also somewhat marred by an injury to Germany captain Philipp Lahm, who limped off during the first half to place his participation in next month's FIFA World Cup into doubt.
Guardiola has faced criticism since his side's UEFA Champions League semi-final exit to Real Madrid last month, but can now point to the retention of each of Germany's premier domestic prizes.
There was almost a goal inside three minutes as Dortmund goalkeeper Roman Weidenfeller inadvertently kept out Muller's near-post drive.
Weidenfeller also produced a comfortable save from a tame Robben effort as Bayern dictated play for large spells early on.
However, Bayern suffered a blow when Lahm was withdrawn through injury in front of watching national coach Joachim Low and replaced by Franck Ribery.
Moments of quality were rare in a cagey opening period, although 18-year-old midfielder Pierre Hojbjerg did go close to opening the scoring for Bayern two minutes before the interval as he powered a shot wide from Ribery's pull back.
Dortmund responded almost immediately by carving out their best opportunity of the first half, but Robert Lewandowski - playing against the team he will join for next season - fired high and wide after cutting inside Hojbjerg.
Bayern continued to carry the greater threat and Weidenfeller made a fine reaction stop to deny Muller from close range 10 minutes after the break, following good work down the left from Ribery.
However, Dortmund were left aggrieved in the 64th minute as a far-post header from Hummels looked to cross the line before being cleared by Dante. As Dortmund's players launched animated appeals, the referee refused to award the goal.
Jurgen Klopp's side duly grew in stature and their opponents were grateful to Manuel Neuer when the goalkeeper pulled off his first meaningful save, parrying Oliver Kirch’s long-range drive.
Yet Bayern remained a dangerous attacking threat and Weidenfeller was soon called into action again, denying Robben with an improvised save with his chest.
Neither team was able to find a breakthrough in normal time, although Pierre-Emerick Aubameyang almost found the opener at the start of the first additional period, curling into the side-netting from just inside the 18-yard box.
It was to be Robben who claimed the decisive goal, slotting home at the back post from Jerome Boateng's cross to finally break the deadlock.
Marco Reus saw a late effort deflected over the crossbar by Boateng, but there was to be no way back for Dortmund, who conceded a second in injury time when Muller broke free on the counter-attack before rounding Weidenfeller and tucking into an empty net.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.