England captain Harry Kane's late goal at Bochum was not enough as Bayern Munich suffered their third consecutive defeat in nine days.
Bayern took the lead through Jamal Musiala, before the first of two stoppages following fans' protests.
Bochum scored twice, with goals from Takuma Asano and Keven Schlotterbeck.
Kevin Stoger's penalty made it 3-1 after Dayot Upamecano had been sent off and, despite Kane's 25th league goal of the season, it was not enough.
Thomas Tuchel's Bayern are now eight points behind Bundesliga leaders Bayer Leverkusen.
Bayern have been German champions in each of the past 11 seasons but now face the possibility of ending the campaign without a trophy.
They lost in the German Super Cup in August and then went out of the German Cup in the second round to third-tier Saarbrucken in November.
Tuchel's side lost 3-0 at Leverkusen on 10 February and were then beaten 1-0 by Lazio in the first leg of their Champions League last-16 tie in midweek.
This defeat was the first time Bayern have lost three matches in a row since May 2015 when managed by Pep Guardiola.
BBC