Bayern Munich had to put their Bundesliga title celebrations on hold on Saturday after beating gutsy Mainz 05 2-0 while Borussia Dortmund also won, 3-0 at Hanover 96.
Bayern, who face Manchester United in the Champions League quarter-finals next month, struggled at times with Mainz's quick counter attacks but still chalked up a league record 18th consecutive victory.
The runaway leaders broke the deadlock with a Bastian Schweinsteiger header eight minutes from time before substitute Mario Goetze added a second goal after Franck Ribery had rounded the keeper.
Bayern can break the record for the quickest title triumph at Hertha Berlin on Tuesday, their eighth last game of the season.
"That would be wonderful," said Berlin-born defender Jerome Boateng.
"To win the title in my home city would be great. We did the groundwork for that today."
Mainz confirmed their good recent form by putting the visitors under pressure from the start.
They missed their best chance when Cameroon international Eric Maxim Choupo-Moting, who had scored four goals in the last five games, shook off Philipp Lahm and thundered his shot on to the crossbar early in the second half.
Bayern responded in the 55th minute, Mario Mandzukic's powerful point-blank header being saved by 20-year-old keeper Loris Karius.
Karius denied the visitors with half a dozen good saves but could do nothing to stop Schweinsteiger nodding in at the far post after a deep cross from Xherdan Shaqiri who had come on as a substitute.
Ribery then rounded the keeper and pulled the ball back for Goetze to seal the win in the 86th minute.
"We played a tough opponent and won," said coach Pep Guardiola who is on the brink of landing his first league title with Bayern.
"There was a lot of work behind this win and I can only be satisfied. Now we are one win away and can do it in the capital on Tuesday."
Bayern, who stretched their record unbeaten league run to 51 games, have 74 points.
Fellow Champions League quarter-finalists Dortmund, who eased past Hanover with goals from Mats Hummels, Robert Lewandowski and Marco Reus, are second on 51 points.
Injury-hit Schalke 04, in third spot on 50 points, fielded a young team with an average age of 23 as they defeated bottom club Eintracht Braunschweig 3-1 to notch their third straight win.
Borussia Moenchengladbach produced an explosive three-goal 12-minute spell in the first half to cruise past Hertha Berlin 3-0, Juan Arango scoring one and setting up another.
Gladbach are fifth on 42 points, two behind Bayer Leverkusen who host Hoffenheim on Sunday.
VfB Stuttgart climbed out of the relegation zone by beating 10-man Hamburg SV 1-0.
Third from bottom Hamburg had Hakan Calhanoglu sent off for a second caution in the 54th minute before Alexandru Maxim tapped in the winner.
Visiting Augsburg conceded an 81st-minute equaliser by VfL Wolfsburg's Ivica Olic to draw 1-1.
Wolfsburg finished with 10 men after Kevin De Bruyne was handed a second yellow card for pushing the referee after disputing a stoppage-time decision.
Image: Bayern Munich's Bastian Schweinsteiger celebrates his goal against FSV Mainz 05 during their Bundesliga match in Mainz on Saturday
Photograph: Kai Pfaffenbach/Reuters