Robert Lewandowski scored twice for Bayern Munich and Erling Braut Haaland netted a double for Borussia Dortmund as both sides recorded victories in the penultimate round of Bundesliga games.
Bayern, who had secured the title in their previous match, won 3-1 at home against Freiburg.
Dortmund guaranteed themselves second place with a 2-0 victory at third-placed RB Leipzig.
At the bottom, Werder Bremen lost 3-1 at Mainz.
It means the four-time Bundesliga champions need to beat Cologne on the final day and hope Fortuna Dusseldorf lose at Union Berlin to climb into the relegation play-off place, which is contested against the side that finishes third in Bundesliga2.
Prolific Poland striker Lewandowski moved to 33 league goals for the season, becoming the record foreign goalscorer in Bundesliga history, and 47 overall in all competitions.
Teenage Norwegian frontman Haaland took his Bundesliga tally to 13 for Dortmund – at a rate of a goal every 75 minutes – having joined the side in January from RB Salzburg.
In the last round of games next Saturday, Bayern travel to Wolfsburg while Dortmund host Hoffenheim, with those two sides separated by goal difference and vying for a Europa League place.