Bayer Leverkusen stayed on course to complete an unbeaten season after a 5-0 win at 10-man Bochum made it 50 games without defeat.
Xabi Alonso’s side, crowned Bundesliga champions last month and bidding for an unbeaten treble, have two league games left and will face Kaiserslautern in the DFB-Pokal final after taking on Atalanta in the Europa League final.
After Bochum defender Felix Passlack’s 15th-minute dismissal, Leverkusen took control, with Patrik Schick, Victor Boniface, Amine Adli, Josip Stanisic and Alex Grimaldo all on target.
Bayern Munich bounced back after their midweek Champions League exit at the hands of Real Madrid with a 2-0 home win against Wolfsburg, with Lovro Zvonarek and Leon Goretzka both scoring inside the opening 13 minutes.
In Serie A, Juventus and Bologna both secured their spot in next season’s Champions League.
Juventus salvaged a point after being held 1-1 by relegated Salernitana in Turin, with Adrien Rabiot’s stoppage-time strike cancelling out Niccolo Pierozzi’s first-half effort.
Thiago Motta’s third-placed Bologna reached the Champions League for the first time, their spot sealed thanks to Atalanta’s win over Roma.
Europa League finalists Atalanta’s 2-1 win strengthened their grip on the final Champions League place, Charles De Ketelaere’s first-half double pulling them three clear of Roma and with a game in hand.
Lazio stayed on course for European football next season after a 2-0 home win against relegation battlers Empoli.
In LaLiga, Rodrigo De Paul’s late strike secured Atletico Madrid a 1-0 home win against Celta Vigo and edged his side closer towards Champions League qualification.
Diego Simeone’s side remain fourth, eight points above Athletic Bilbao, with three games remaining.
In Ligue 1, Paris St Germain fans’ third straight title celebrations were spoiled by a shock 3-1 defeat to Toulouse as Kylian Mbappe’s final appearance at the Parc des Princes for the club ended on a losing note.
Mbappe opened the scoring, with his 27th league goal of the season giving his side an early lead, but Toulouse hit back through Thijs Dallinga, Yann Gboho and Frank Magri as PSG slipped to their second league defeat of the season.
Monaco edged closer towards Champions League qualification despite a 0-0 draw at Montpellier, while Lille boosted their hopes as a 2-0 win at Nantes lifted them above Brest into third.