BERLIN -- Hoffenheim dampened Bayern Munich's Bundesliga title celebrations by grabbing a 3-3 draw to end the champions' 19-game winning run on Saturday.
Anthony Modeste's 23rd-minute opening goal only seemed to rile Bayern, which responded with three goals in nine minutes -- a brace from Claudio Pizarro and one from Xherdan Shaqiri.
But Sejad Salihovic pulled a goal back with a brilliant free kick in the 40th and Roberto Firmino equalized in the 75th.
Hoffenheim goalkeeper Jens Grahl preserved the draw, denying Bayern substitute Arjen Robben with three minutes remaining.
"It was a great day for us but Bayern are still beyond reach for us," Hoffenheim coach Markus Gisdol said.
It was only the third time in 28 games that Bayern -- which clinched the title with a record seven games to spare on Tuesday -- dropped points this season. However, Bayern still managed to extend its record 53-game unbeaten run.
"Compliments to Hoffenheim," Bayern coach Pep Guardiola said. "We always had a solution in the first half, not in the second half. We had no control, it went here and there, and when that happens the other 17 teams are better than us."
Marco Reus scored a hat trick for Borussia Dortmund to come from behind and win 3-2 at 10-man Stuttgart to reclaim second place from rival Schalke.
"The second half was great. We deserved to win," said Dortmund coach Juergen Klopp, whose side visits Real Madrid in the Champions League on Wednesday.
Bayer Leverkusen could only draw 1-1 with bottom side Eintracht Braunschweig.
Mainz enjoyed a 3-0 win over Augsburg and Eintracht Frankfurt lost 2-1 at Wolfsburg.
In the late game, Felix Klaus' wonderful 65th-minute strike to the far top corner clinched a 3-2 come-from-behind win for Freiburg over fellow relegation candidate Nuremberg.
Emanuel Pogatetz, who opened the scoring for Nuremberg in the sixth, was sent off with his second yellow card in injury time.
"We won a game, nothing more. We're in a fight against the drop," said Freiburg coach Christian Streich, whose side moved five points clear of the relegation zone.
Pep Guardiola rewarded his side for winning the Bundesliga by making several changes from the side that won 3-1 at Hertha Berlin. The Bayern coach also likely had one eye on Tuesday's Champions League quarterfinal first leg at Manchester United.
Tom Starke made a rare start in place of regular goalkeeper Manuel Neuer, while David Alaba, Jerome Boateng, Toni Kroos, Philipp Lahm, Thomas Mueller and Robben were also rested.
Hoffenheim took advantage of the home side's high defence to open the scoring. Kevin Volland sent Anthony Modeste on his way from inside his own half. The French striker's first effort was parried by Starke but he followed up to fire the loose ball home.
Shaqiri crossed for Pizarro to equalize in the 31st, and the Peruvian returned the favour for Shaqiri to make it 2-1 three minutes later, six minutes before Franck Ribery crossed for Pizarro to claim his second.
Salihovic scored with a free kick from around 30 metres (yards), and Roberto Firmino eluded Dante and Rafinha to complete the come-back before Grahl secured the point.
"We have to analyze what happened today," Guardiola said. "We're not favourites against Manchester on Tuesday if we play like we did today in the second half."
The worst news from Bayern's point of view was the first half injury to midfielder Thiago Alcantara. An MRI scan confirmed the Spaniard suffered an extended partial ligament tear in his right knee, ruling him out of action for up to eight weeks.
Dortmund fell two goals behind in Stuttgart after Christian Gentner scored in the ninth and Martin Harnik made it 2-0 10 minutes later.
Jonas Hofmann set up Reus to score in the 30th, and the Dortmund attacking midfielder equalized with a penalty in the 68th, after last defender Georg Niedermeier was sent off for bringing down Robert Lewandowski, who had earlier struck the post.
Pierre-Emerick Aubameyang cut the ball back for Reus' winner in the 83rd.
"It's hard but that's the way you come away from the bottom -- fighting and sticking together," said Stuttgart coach Huub Stevens, whose side remains second from bottom.
The game was interrupted briefly in the second half for injured referee Michael Weiner to be replaced by one of the linesmen.
Naldo's 89th-minute long-range strike ensured Wolfsburg closed within a point of Leverkusen. Stefan Aigner scored for Frankfurt in the 11th but Ivica Olic equalized in the 69th.
Leverkusen needed a penalty from Stefan Kiessling in the 51st to rescue a point against Braunschweig, which took the lead four minutes before through Ken Reichel's superb volley inside the near post.