Bayern, needing a win to wrap up the title, were made to pay for their complacency as they rotated their team and sat back after Thomas Mueller had given them an early lead.
The 75,000 capacity Allianz Arena crowd, clearly believing the match was a formality after seeing their team win 14 of their previous 15 home league games this season, were stunned when Andre Hahn eqaualised midway through the second half.
Second-placed Borussia Dortmund closed the gap to five points by thrashing VfL Wolfsburg 5-1, helped by two second-half goals from Pierre-Emerick Aubameyang.
Bayern still remain firm favourites with their remaining games away to midtable Ingolstadt and at home to relegated Hanover 96.
Bayern coach Pep Guardiola made eight changes from the side which lost 1-0 at Atletico Madrid in the Champions League on Wednesday with Philipp Lahm, Javi Martinez, David Alaba, Xabi Alonso, Arturo Vidal and Robert Lewandowksi among the regulars left out.
Even so, Bayern took a sixth-minute lead when Mueller met Joshua Kimmich's corner with a low header from 10 metres which bounced past several players and went in off the foot of the post.
However, the hosts allowed Gladbach to take the initiative and there were even some whistles from the Allianz Arena crowd as Bayern's defenders at one point passed the ball among themselves.
Fourth-placed Gladbach, unbeaten in their last four games with Bayern, produced several scares and equalised when Hahn got between the Bayern defence to collect a pass from Lars Stindl, made space and drilled his shot between Manuel Neuer and his near post.
Bayern threw themselves into the attack without offering much of a threat in the closing minutes.
Shinji Kagawa and Adrian Ramos struck as Dortmund raced to a 2-0 lead in a devastating first 10 minutes.
Marco Reus scored a third on the hour and Aubameyang scored twice in two minutes to take his tally for the season to 25. Andre Schuerrle scored Wolfsburg's consolation.
Sixth-placed Schalke 04 stayed in the hunt for a Champions League place by winning 3-1 at relegated Hanover 96 while Mainz 05, two points behind in seventh, were held to a disappointing goalless draw at home by Hamburg SV.
Eintracht Frankfurt moved out of the bottom two with a 2-1 win at Darmstadt.