Gladbach, who like Bayern are in the Champions League Round of 16, pressed high from the start but it was Bayern who went ahead with Robert Lewandowski's 20th minute penalty awarded for a Neuhaus handball. It was the Polish striker's 20th goal of the campaign.
The Bavarians then carved out a two-goal lead six minutes later with Leon Goretzka winning possession and then finishing the move with a crisp effort from 20 metres out that left keeper Yann Sommer no chances.
But instead of enjoying a trouble-free evening, the defensive weaknesses that have plagued them this season were exposed once more, with Hofmann cutting the deficit in the 36th after latching on to a pinpoint pass from Lars Stindl.
The forward beat Bayern keeper Manuel Neuer once more in first half stoppage time when another Stindl through ball sliced open the Bayern defence.
Before the dazed Bavarians had any time to react, Gladbach scored their third goal of the evening in the 49th with Neuhaus' thundering drive completing the hosts' sensational turnaround.
"We ourselves are to blame for this defeat," Bayern coach Hansi Flick said. "Gladbach were extremely efficient and they took full advantage of three mistakes we made."
"After the 3-2 we never bounced back as we had hoped. Gladbach closed the spaces and played their counter attacks really well."
It was the ninth league games in a row that Bayern have fallen behind, a club record. It was also Bayern's second loss of the season and only the fourth defeat for Flick in his 60th game in charge in all competitions, two of those against Gladbach.
"I am very happy for my players. In some games until now we were missing a bit of luck. This time we carved it out ourselves," Gladbach coach Marco Rose said.
"This game is a signal that we need to get stuck in there and keep working."
The Bavarians, who squandered a two-goal lead in the Bundesliga for the first time in 10 years, are still top on 33 points with RB Leipzig, who take on Borussia Dortmund on Saturday, on 31. Gladbach are seventh on 24.