BERLIN (AP) - Bayern Munich left it late to grind out a 2-0 win in Mainz on Saturday and move one victory away from the Bundesliga title.
Bastian Schweinsteiger broke the deadlock in the 82nd minute and substitute Mario Goetze added another goal four minutes later to secure Bayern's league-record 18th consecutive win and stretch its unbeaten run to 51 games - also a record.
Second-place Borussia Dortmund won 3-0 at Hannover but remained 23 points behind Bayern with eight games remaining.
"We don't really care when we're champions," said Schweinsteiger, whose side can secure the quickest title in 51 years of the Bundesliga by winning at Hertha Berlin on Tuesday, regardless of Dortmund's result against Schalke in the Ruhr derby the same evening.
"It's really great that we can be champions in Berlin, where it all began for me," Bayern defender Jerome Boateng said. "We laid the groundwork today."
Schalke consolidated third with a 3-1 win over bottom side Eintracht Braunschweig.
Stuttgart beat 10-man Hamburger SV 1-0 to move above the visiting side and climb provisionally out of the relegation zone. It was the home side's first win in two games under new coach Huub Stevens, who saved Hamburg from relegation in 2007.
"It was a difficult game in a difficult situation," said Alexandru Maxim, whose goal ended Stuttgart's 10-game winless streak.
Wolfsburg also ended with 10 men in a 1-1 draw with Augsburg. Kevin de Bruyne was sent off in injury time with his second yellow card for arguing the first.
Borussia Moenchengladbach moved to fifth with a 3-0 win at home over Hertha Berlin.
Juan Arango opened the scoring in the 28th, Max Kruse doubled the home side's advantage four minutes later, and Raffael completed the scoring five minutes before the break with a delicate chip over the goalkeeper after he'd played a one-two with Max Kruse.
Mainz suffered its first defeat in six games but the home side frustrated Bayern for long periods and might have scored after the break, when Eric Maxim Choupo-Moting's effort crashed back off the crossbar with Manuel Neuer beaten.
Mainz goalkeeper Loris Karius was busier, blocking Arjen Robben's effort in the fourth minute and producing good saves to deny Mario Mandzukic and Franck Ribery in the second half.
Claudio Pizarro went on for Mandzukic in the 81st and made an immediate impact, playing the ball out left to Xherdan Shaqiri, who crossed for Schweinsteiger to head home from five meters.
Then Ribery capitalized on a botched clearance to set up Goetze for a clinical finish.
"It's not easy for us to play outstanding games all the time with a 23-point lead," said Bayern coach Pep Guardiola, whose side has won 24 of 26 games and drawn the other two.
Sky television reported at halftime that Uli Hoeness was not in the stadium. The former Bayern president was expected to soon begin his 3½-year prison term for tax evasion.
Dortmund failed to impress in Hannover, where Andre Hoffmann hit the post for the home side in the 18th.
Mats Hummels scored two minutes before the interval, prodding the ball home from close range after Sokratis headed it on.
Robert Lewandowski made it 2-0 in the 52nd, cutting in from the left wing, gliding past four Hannover defenders before shooting inside the left post from a central position, and Henrikh Mkhitaryan set up substitute Marco Reus for a flattering score in injury time.
"Everything went in the right direction after the second goal but I could only breathe easily after the third," Dortmund coach Juergen Klopp said.
On Sunday, second-to-last Nuremberg can overtake both Hamburg and Stuttgart by beating Eintracht Frankfurt at home.