Andre Hahn put Bayern Munich's Bundesliga title celebrations on hold as his second-half strike secured a 1-1 draw for Borussia Monchengladbach at Allianz Arena.
Bayern went into Saturday's match seven points clear of second-placed Borussia Dortmund and in the knowledge a win over Gladbach would be enough for a record-breaking fourth successive championship.
Thomas Muller eased the home faithful's nerves when he marked his 350th appearance for the Bavarian club with a header that squirmed beyond visiting goalkeeper Yann Sommer in the sixth minute.
But Bayern were guilty of stepping off the gas and required an impressive reaction save from Manuel Neuer to deny Hahn shortly before the interval.
Hahn got the better of the Germany international goalkeeper with 18 minutes remaining, however, rifling home from substitute Lars Stindl's brilliant throughball.
Kingsley Coman felt he should have had a penalty when he was sent tumbling inside the box by Nico Elvedi, but nothing was given and Bayern were unable to find the goal required to win the title in Pep Guardiola's 100th match at the helm, as their winless run against Gladbach stretched to four matches.
The Bavarian giants now head into the second leg of their Champions League semi-final meeting with Atletico Madrid on Tuesday needing to overturn a 1-0 aggregate deficit with the weight of a championship yet to be won on their shoulders.
Perhaps with one eye on that fixture, Guardiola made eight changes to his line-up, resting the likes of Philipp Lahm, Arturo Vidal and Robert Lewandowski, though Jerome Boateng was restored to the line-up for his first appearance since January 22, having been sidelined with a groin injury.
Still, it took Bayern just six minutes to put themselves on the right track, Serdar Tasci lunging towards Muller's goal-bound header and doing enough to distract Sommer, who could only palm the ball into the back of the net.
Gladbach were unperturbed and came close to an equaliser when Hahn headed Raffael's cross towards the bottom-right corner, but Neuer – on his 250th Bayern appearance – dived down to his left to turn it behind.
Guardiola's side continued to sit on their lead, with Tasci and Sebastian Rode picking up bookings attempting to regain possession as Gladbach enjoyed the greater share of the ball before the half-hour mark.
Muller continued to be a danger and the pressure he applied on Oscar Wendt almost resulted in the Gladbach left-back inadvertently sending Coman's cross into the back of his own net ahead of the interval.
Bayern struggled to carry that momentum into the second half, Granit Xhaka providing a scare when he surged forward and sliced wide from 20 yards in the 56th minute.
Gladbach's pressure finally told in the 72nd minute when Stindl, who replaced Thorgan Hazard in the 57th minute, released Hahn in behind the defence and he drilled a low shot beyond Neuer at his near post.
Coman was cut down by Elvedi inside the box 15 minutes from time but the referee was unconvinced it warranted a penalty, and Bayern's advantage at the summit was cut to five points following Borussia Dortmund's 5-1 thrashing of Wolfsburg.
However, Guardiola's team can secure the trophy by defeating Bavarian rivals Ingolstadt at Audi Sportpark next Saturday.
Key Opta stats:
- Bayern missed a chance to equalise the Bundesliga record of 35 consecutive wins after holding a half-time lead. The last time Bayern didn’t win a BL match after holding a half-time lead was in August 2014 at Schalke (1-1).
- For the 1st time in 2015-16 Bayern could not win a BL match that took place after a Champions League match – they won the first 10 BL matches to fall after a CL match.
- It’s the second time this season that Bayern could not win a competitive match at home (after the 1-2 loss vs. Mainz on matchday 24). Bayern won all of the other 21 matches.
- It was Guardiola’s 100th BL match. The Spaniard could not win the last four competitive matches vs. Gladbach (2D, 2L), only vs. Chelsea do they have a worse record (5).
Get the best features, fun and footballing frolics straight to your inbox every week.