Borussia Dortmund sealed their place in next season's UEFA Champions League with an enthralling 4-2 win over Mainz on Saturday.
In a high-tempo encounter, the hosts took the lead after just six minutes at Signal Iduna Park courtesy of Milos Jojic's deflected opener, before Shinji Okazaki levelled with a deflected effort of his own eight minutes later.
Robert Lewandowksi restored the advantage after finishing a wonderful breakaway, only for Okazaki to pounce on a Nuri Sahin mistake to restore parity again shortly after the break.
However, from that point, Dortmund stepped up the pace to seal the points, and a Lukasz Piszczek header put them back in front before Niko Bungert was sent off for handling in the box.
Marco Reus stepped up to convert the resulting spot kick, securing a fourth consecutive league victory that also handed Jurgen Klopp's side European football for another season.
Klopp had previously hailed the progress of his former club, where he spent a total of 19 years as a player and then manager before leaving for Dortmund in 2008, but there seemed to be no room for sentiment as the hosts made a vibrant start.
Reus fired an early warning after three minutes, striking the post with a thumping 30-yard free-kick.
And Dortmund, buoyed by their 3-0 win over champions Bayern Munich last week, were celebrating three minutes later as Jojic's strike from the edge of the area took a fortunate deflection off Oliver Kirch, leaving goalkeeper Loris Karius with no chance.
The visitors protested at a suspected handball from Kirch, but any sense of injustice was eased just before the quarter-hour mark.
Okazaki's speculative effort from the edge of the area cannoned off the boot of Mats Hummels and looped over the head of Australian Mitch Langerak and into the net.
Their joy at restoring parity lasted just three minutes, though, as Sahin's wonderful throughball from midfield found Henrikh Mkhitaryan, who burst into the penalty area before squaring to Lewandowski, who gladly slotted home for his 18th Bundesliga goal of the season.
Despite struggling to contain a lively Dortmund midfield, Mainz still managed to create chances before the break. First, Maxim Choupo-Moting headed wide, before Yunus Malli's vicious 25-yard drive went whistling over the crossbar.
However, Dortmund remained the better side and nearly extended their lead 10 minutes before the break courtesy of Reus, who sent a low shot just wide of the post after some good work down the left by Piszczek.
Reus had another great chance just after the interval, spurning a one-on-one with the goalkeeper after getting in behind the Mainz backline.
The Germany international's wastefulness was punished after 53 minutes when a poor back pass from Sahin was pounced on by Okazaki, who sprinted past Langerak to slot home.
But once again, Dortmund responded with a goal of their own three minutes later, as a whipped free-kick from Reus on the left found the head of Piszczek, who rose highest to glance the ball beyond Karius.
Lewandowski should have secured a fourth goal after 63 minutes when he was played clean through on goal, only to be denied by an inspired Karius save.
The hosts were awarded a penalty 11 minutes from time, after Lewandowski's effort hit the hand of Bungert, who was shown a red card.
Reus duly obliged with the resulting spot-kick, as Klopp secured his sixth consecutive win over his previous employers, denting their UEFA Europa League hopes in the process.
|14||M. Jojić||6' 8'|
|Coach: J. Klopp|
for H. Mkhitaryan 80'
for M. Jojić 81'
for M. Reus 84'
|Bayern hoping for speedy Vidal return|
|Hull sign Markovic on loan from Liverpool|
|Wenger charged with misconduct by FA|
|Deulofeu joins AC Milan - and this time the deal is definitely done!|
|Henderson still playing through pain, reveals Klopp|
|Record-breaking Rooney reveals secret to longevity|
|No ulterior motive behind Van Dijk captaincy call - Puel|
|Carroll ignoring want-away Payet|
|Gerrard´s managerial ambitions ´wonderful news for Liverpool´ - Klopp|
|PSG interested in Guedes, confirms Emery|
|Barca lose Busquets to sprained ankle|
|Pulisic commits to Dortmund until 2020|
|Mason speaking after suffering fractured skull|
|Aubameyang blames poor preparation for Gabon AFCON exit|
|David Beckham returns to PSG|
|Morocco v Ivory Coast: Holders must beat old boss Renard as group reaches thrilling conclusion|
|Djilobodji charged over Fletcher incident|
|Cahill and Terry visit Mason in hospital|
|Allardyce onto second-choice transfer targets|
|Dortmund sign teenager Isak|
|Madrid confirm Modric and Marcelo injury blows|
|Vidal fears longer lay-off, targets return against Arsenal|
|Yaya Toure: Sterling should have dived!|
|Turan wants to see out Barcelona contract despite China talk|
|Impassioned Ibrahimovic attacks Rooney´s critics|
|´He has to lose weight´ – Mihajlovic angry after dropping Maxi Lopez|
|Lack of Liverpool signings frustrates Klopp|
|Suarez: Busquets difficult to replace for Barca|
|Depay impresses Lyon after debut|
|CSL? Rooney committed to United|
|Denis Suarez wants more goals after opening Barca account|
|Simeone bemoans inconsistency but says Atletico are improving|
|Mourinho won´t stand in the way of Rooney and CSL|
|Dzeko on target as Roma stay on Juve´s tail|
|Rakitic ready to cover for injured Busquets|
|Bale and Kane wish Mason well after serious injury|
|Busquets injury less severe than feared - Luis Enrique|
|Mason in stable condition after skull fracture|
|Senegal v Algeria: Misfiring favourites in last-chance saloon|
|PSV provide perfect finish for darts champ Van Gerwen|
|Broos predicts ´something great´ for Cameroon|
|Eibar 0 Barcelona 4: MSN see Barca to victory after Busquets blow|
|Busquets sustains ankle ligament damage in Eibar v Barcelona|
|Cameroon 0 Gabon 0: Aubameyang miss haunts hosts as AFCON campaign ends|
|Guinea-Bissau 0 Burkina Faso 2: Traore on target as Stallions advance|
|Busquets injury at Eibar compounds Barcelona midfield woes|
|Deulofeu lands in Italy ahead of AC Milan move|
|´I made the best decision´ - Conte basks in Costa recall|
|Wenger urges Xhaka not to ´punish´ Arsenal|
|Ex-Bastia man Palmieri questions Balotelli racial abuse claims|
|Costa reaction hailed by Cahill|
|Manchester City must be mentally strong, says embattled Bravo|
|Chelsea 2 Hull City 0: Costa back with a bang for Blues|
|Koke lauds Griezmann ´stroke of genius´ as Atletico snatch draw|
|Pioli questions Ansaldi dismissal|
|´I should have shut up and I apologise´ - Wenger sorry for ref rant|
|Arsenal can be proud of this red-card record|
|Mustafi: Arsenal never give up|
|Higuain: Lazio posed no threat to Juventus|
|Athletic Bilbao 2 Atletico Madrid 2: Griezmann magic rescues point|
|Puel unsure Van Dijk will be fit for Liverpool clash|
|Free-scoring Monaco return to Ligue 1 summit|
|Arsenal 2 Burnley 1: Sanchez snatches thrilling win for 10-man Gunners|
|Palermo 0 Inter 1: Joao Mario strike extends Inter streak|
|Arsenal fans give Alexis Sanchez paws for thought|
|Costa returns to Chelsea XI to face Hull City|
|Inter cannot delude fans about Messi - Ausilio|
|Allegri admits new Juventus formation was a ´mad idea´|
|Leicester boss Ranieri admits to tactical mistakes|
|Zimbabwe v Tunisia: Kasperczek demands ruthlessness with quarter-final spot on the line|
|Southampton 3 Leicester City 0: Saints end losing streak but suffer potential Van Dijk blow|
|Juventus 2 Lazio 0: Dybala and Higuain strikes see leaders return to form|
|Iborra makes a mark at both ends as Sevilla scrape past Osasuna|
|Pogba hails ´brother´ Griezmann as Manchester United speculation continues|
|Costa fight rumour ´not nice´, says Courtois|
|Henry makes emotional Ozil plea: Stay and become an Arsenal legend|
|Welbeck still has huge promise, says Wenger|
|A-League Review: Wanderers finally end home hoodoo|
|Tevez denies he´s highest-paid player after CSL move|
|Napoli capable of greatness - Sarri|
|Montella proud of Milan display against Napoli|
|Ramos tells Madrid fans: We need support|
|Conte: Costa committed to Chelsea|
|Callejon credits ´Maradona effect´ as Napoli down AC Milan|
|Uganda didn´t deserve to lose - Sredojevic|
|Lloris kept us in the game - Pochettino backs captain despite errors|
|Guardiola ´never going to give up´ on Premier League title|
|Chapecoense make emotional return to football|
|Allardyce: Players don´t want to join Palace relegation fight|
|Pulis backs Berahino to get back on track at Stoke|
|AC Milan 1 Napoli 2: Callejon settles San Siro thriller|
|Guinea-Bissau v Burkina Faso: Cande not thinking about going home|
|Egypt 1 Uganda 0: El Said to the rescue for Pharaohs|
|Gabriel Jesus delighted to make Premier League bow|
|England boss Southgate lauds record-breaker Rooney|
|Leipzig beat Frankfurt to cut Bayern´s lead|
|Guardiola blasts missed chances, not referee, after Spurs draw|
|Candid Pochettino says City were unlucky not to beat Spurs|
|AC Milan ´still negotiating´ over Deulofeu|
|Ben Arfa content with striker role at PSG|
|Walker admits to Sterling push in contentious City-Spurs draw|
|Emery hails PSG personality after tricky Nantes test|
|Manchester City 2 Tottenham 2: Controversial Son strike bails out Lloris|
|Record-breaking Rooney: Lineker, Shearer and wife Coleen lead Twitter tributes|
|Knee surgery to end Ogbonna season - Bilic|
|Karanka hits out at ´awful´ Riverside atmosphere|
|Zidane urges Madrid fans to stick with Ronaldo and Benzema|
|Palace players not to blame for last-gasp defeat, claims Allardyce|
|Zidane frustrated as Marcelo and Modric add to Madrid´s injury worries|
|Howe praises Bournemouth ´fighters´ after Watford draw|
|Poor goals a disease for Sunderland - Moyes|
|Charlton, Ferguson hail ´true great´ Rooney|
|Tuchel annoyed by ´sluggish´ Dortmund|
|Mourinho: Rooney now a Manchester United legend|
|Ghana 1 Mali 0: Gyan heads Black Stars into quarter-finals|
|Nantes 0 Paris Saint-Germain 2: Cavani at the double as champions close on Nice|
|Better at Old Trafford, prolific against Arsenal - Rooney´s record in Opta numbers|
|Rooney: Record means a hell of a lot but I´m still disappointed|
|Fener free-kick to derby delight - Rooney´s top 10 Manchester United goals|
|Rooney merits place in history, forget the present and future struggles|
|Crystal Palace 0 Everton 1: Coleman late-show extends Allardyce´s losing run|
|Real Madrid 2 Malaga 1: Ramos double gets leaders back on track|
|Stoke City 1 Manchester United 1: Record-breaking Rooney snatches draw|
|West Brom 2 Sunderland 0: Baggies inflict more misery on Moyes´ men|
|Bournemouth 2 Watford 2: Hosts come from behind twice|
|Middlesbrough 1 West Ham 3: Rejuvenated Carroll makes the difference|
|Rooney becomes Manchester United´s all-time top goalscorer|
|Werder Bremen 1 Borussia Dortmund 2: Piszczek winner denies fightback|
|Cameroon v Gabon: Hosts look to avoid early exit|
|Swansea worthy winners at Anfield - Clement|
|Rummenigge defends Guardiola: Manchester City simply not as good as Bayern|
|Swansea had perfect gameplan, says match-winner Sigurdsson|
|Klopp baffled by sloppy Liverpool|
|Henry: Arsenal don´t need Payet – they have Iwobi|
|Allegri: Juventus have not lost their quality all of a sudden|
|Liverpool 2 Swansea City 3: Llorente and Sigurdsson stun Anfield|
|Nainggolan as valuable as Pogba - Spalletti|
|Atletico criticism excites Simeone|
|Luis Enrique worried about Eibar´s pitch|
|Januzaj: Pogba wants me back at Manchester United|
|There is nobody like him – Luis Enrique rues Iniesta absence|
|Mourinho: United need De Gea and Romero to stay|
|Chiellini: Sixth successive title would make Juventus players legends|
|A-League Review: Taggart fires Perth to glory|
|Balotelli furious after alleged racial abuse at Bastia|
|Tottenham stronger than previous seasons - Eriksen|
|Wenger prepared for 17 cup finals to overhaul Chelsea|
|Maldini: Donnarumma can emulate my Milan success|
|Klopp urges Liverpool to enjoy title race|
|Shaw going through ´difficult period´ - Mourinho|
|Klopp not worried by Sturridge, Origi form|
|De Gea backs ´amazing´ Pogba|
|Pochettino: Tottenham bigger than City|
|Conte: I trust Diego Costa 100 per cent|
|Lewandowski admits he was lucky for Bayern winner|
|City as sharp as Barca and Bayern but lacking consistency, says Guardiola|