Bayern Munich bounced back from their Champions League quarter-final exit to Paris St Germain with a hard-fought 3-2 win over Wolfsburg.
Jamal Musiala opened the scoring in the 15th minute before Eric Maxim Choupo-Moting capitalised on Koen Casteels' error to double their advantage nine minutes later
Wout Weghorst pulled one back for the home side before Musiala found the net for a second time with a looping header before half-time – becoming the youngest player to score six Bundesliga goals.
Maximilian Philipp's volley reduced the deficit but Wolfsburg were unable to find the equaliser as Bayern moved seven points clear at the top.
Eintracht Frankfurt missed out on the chance to climb up to third after being thrashed 4-0 at Borussia Monchengladbach.
Matthias Ginter put the hosts ahead in the first half, with Jonas Hofmann, Ramy Bensebaini and Hannes Wolf completing a emphatic victory to boost their European aspirations in seventh.
Schalke sit 13 points adrift of the Bundesliga relegation play-off after a 4-0 loss at Freiburg.
Lucas Holer and a Roland Sallai penalty put Freiburg 2-0 at the break before Christian Gunter's second-half brace sealed the three points.
Bayer Leverkusen climbed up to fifth after a 3-0 success against struggling Cologne thanks to Leon Bailey's brace and Moussa Diaby's strike.
Union Berlin have an outside chance of European football next season after first-half goals from Grischa Promel and Petar Musa earned a 2-1 home victory against Stuttgart, who replied through Philipp Forster. Augsburg and Arminia Bielefeld played out a goalless draw.
Barcelona secured their 31st Copa del Rey title following a second-half scoring blitz to win 4-0 against Athletic Bilbao at Estadio La Cartuja de Sevilla.
Ronald Koeman's side dominated the first half with 84 per cent possession but could not make the breakthrough until the 60th minute in Seville.
Antoine Griezmann stroked home Frenkie De Jong's low cross to put Barca ahead before the Holland international got on the scoresheet three minutes later.
Lionel Messi got on the act when he started and finished a brilliant team move in the 68th minute and doubled his tally with Barcelona's fourth in 12 second-half minutes.
Griezmann had a fifth goal chalked off for offside late on as Koeman lifted his first trophy as Barca boss.
Cagliari scored two goals in stoppage time to snatch a key 4-3 victory against fellow strugglers Parma in Serie A.
Giuseppe Pezzella and Juraj Kucka put Parma into 2-0 lead but Leonardo Pavoletti halved the deficit before half-time.
Dennis Man restored the two-goal cushion just before the hour mark, only for Razvan Marin to hit back for Cagliari.
The hosts, who were set to be leapfrogged by their opponents, equalised in the first minute of added time through Gaston Pereiro, with Alberto Cerri scoring three minutes later to claim the win which leaves them two adrift of safety.
Basement side Crotone suffered their 12th defeat in 13 league matches, and fourth in succession, at the hands of 10-man Udinese.
Rodrigo De Paul opened the scoring for Udinese but Simy levelled in the 68th minute from the penalty spot.
De Paul scored the match-winner six minutes later before the Udinese captain was shown a straight red card for a dangerous high foot in stoppage time.
Darko Lazovic put Verona ahead but goals Jakub Jankto, a Manolo Gabbiadini penalty and Morten Thorsby sealed Samp's first league win in three games.
Marseille defender Pol Lirola scored a stoppage-time winner to guide his side to a much-needed 3-2 victory at home to Lorient.
Teremas Moffi earned a half-time lead for Lorient but Marseille hit back through Dimitri Payet and Lirola first goal for the club.
Moffi levelled with 20 minutes remaining and looked to share the spoils until Lirola popped up in the first minute of stoppage time to snatch a last-gasp win.
Rennes made it four victories in five Ligue 1 matches after a 3-0 triumph at Angers.
Jeremy Doku, Martin Terrier and Sehrou Guirassy grabbed the goals for in-form Rennes at Stade Raymond Kopa.