Eintracht Frankfurt 1 Borussia Dortmund 0: Aigner the hero again as BVB's challenge ends

Eintracht Frankfurt took a major step toward Bundesliga survival by recording a 1-0 victory over Borussia Dortmund, who will finish the season as runners-up after Bayern Munich were crowned champions on Saturday.

Dortmund needed to win and hope Bayern suffered a shock loss at Ingolstadt to keep their title challenge alive, but Pep Guardiola's team sealed their fourth championship in succession with a 2-1 triumph.

And even if the Bavarian giants had slipped up, BVB could not do what was required of them, Stefan Aigner's early header consigning the visitors to a narrow defeat at a raucous Commerzbank-Arena.

It was a crucial result for the home team, who move one point clear of the relegation play-off places courtesy of Werder Bremen's 0-0 draw at Cologne and Stuttgart's loss at Mainz.

Dortmund are at least guaranteed second place – granting automatic Champions League qualification – and have a DFB-Pokal final against Bayern in Berlin to look forward to on May 21.

Frankfurt, meanwhile, travel to Bremen's Weserstadion next weekend in a huge clash between two teams still struggling against the threat of relegation.

The hosts were expected by many to struggle against a Dortmund side who have been rampant of late, but they instead converted sustained early pressure into a deserved 15th-minute lead. Makoto Hasebe's cross from a short corner was met by the head of Aigner, who steered the ball into the bottom-right corner of Roman Burki's net.
 
The goal vindicated the decision of Frankfurt coach Niko Kovac to start Aigner, who came off the bench to net the winner in a vital 2-1 derby victory over Darmstadt last weekend.
 
Thomas Tuchel's men looked unstoppable as they mauled Wolfsburg 5-1 in their previous outing, but were without Julian Weigl after he became the first Dortmund player of the Bundesliga season to incur a suspension; yellow card accumulation consigning the midfielder to the sidelines. 
 
Ilkay Gundogan was also unavailable after suffering a knee injury playing basketball, a problem that has ruled him out of Germany's Euro 2016 campaign. 
 
And the diminished visitors could only carve out two half-chances in the opening 30 minutes. Both fell to Pierre-Emerick Aubameyang, who scored twice last time out after being introduced as a second-half sub.
 
The Gabon international had an opportunity to level the scores barely a minute after the opening goal when a Marco Reus throughball split the Frankfurt defence, but the striker tripped at the vital moment. He then fired over the crossbar in the 25th minute from a cutback supplied by Reus.
 
Despite their struggles to create openings, Dortmund should have gone in level at the break, Mats Hummels' header from a Nuri Sahin free-kick incorrectly ruled out for offside in first-half stoppage time.

That was as close as the away team came to forcing an equaliser in a frustrating second half for BVB, which saw Christian Pulisic fire high over the target when presented with a rare sight of goal.

Henrikh Mkhitaryan tested Lukas Hradecky in the 72nd minute, but found the Frankfurt goalkeeper once again equal to the task.

A desperate David Abraham block then denied the Armenia international with eight minutes to go as the determined hosts held out to secure a result that could yet preserve their top-flight status.