Dortmund's win at home to Moenchengladbach on Saturday left the defending champions eight points clear with two games remaining. They will be presented with the Bundesliga shield in their final game at home to Freiburg on May 5.
Jurgen Klopp's team suffered the last of their three league defeats back September and have now extended the record for the longest unbeaten run in a single German league season to 26.
Having amassed 75 points, they can still beat the record of 79 for the most league points won in a season - a record Bayern achieved twice in the early 1970s.
The champions have dominated Bayern in both the table and on the pitch with the Bavarians losing their last four matches against Dortmund. They haven't beat the champions, home or away, since February 2010.
After beating the Bavarians 1-0 at Munich's Allianz Arena last November - thanks to a single goal from Germany's teenage star Mario Goetze - Borussia backed it up with another 1-0 win over Munich in Dortmund on April 11.
This is the first time for 16 years Bayern have been denied the German title for two seasons running when Dortmund last earned back-to-back titles in 1994/95 and 1995/96 before winning the 1997 Champions League title.
Bayern still have the chance for revenge when the teams meet for a third time this season in the German Cup final on May 12 at Berlin's Olympic Stadium.
With Bayern on the verge of the Champions League final after their 2-1 first-leg semi-final win over Real Madrid last week, Dortmund's group stage exit proved to be a helping factor in Klopp's team defending their title.
When Bayern travelled to Dortmund in April, Lewandowski's 77th-minute winner settled both the match and, effectively, the season to make sure the Bundesliga shield stays in the Ruhr valley for another 12 months.