Matchday 26 in the Bundesliga reached its climax with fourth-placed Borussia Dortmund playing host to fifth-placed Frankfurt in a battle for the Champions League places. Dortmund went third with a last-minute decider.
Borussia Dortmund 3-2 Eintracht Frankfurt
(Russ o.g. 11' , Batshuayi 77', 94' - Jovic 75', Blum 91')
Borussia Dortmund won the battle of two of the teams vying for next year's Champions League with a goal in the dying seconds of the contest. Michy Batshuayi broke Hessian hearts after getting in behind the Frankfurt defense and beating Lukas Hradecky for the winner in the 94th minute. Just seconds after Frankfurt kicked off to restart play, referee Deniz Aytekin blew his whistle to bring to an end a match that was seldom pretty, but hard fought all the way through.
A yellow card and an own goal
Early on, it looked like Dortmund might have a surprisingly easy time and it didn't look like being Frankfurt defender Marco Russ' night. Just three minutes into the match, Russ was handed the first yellow card of the night, when he recklessly clattered into Marco Reus. Eight minutes later, it was Russ who beat Reus to a low Pulisic cross, but to his dismay, he directed it past Hradecky into his own goal for an early BVB lead.
This was just one of a number of Dortmund chances in the first quarter hour of the match. One of the best was an inadvertent header by Andre Schürrle that sailed wide of the mark.
It took Frankfurt until the later 20 minutes of the first half to really find their way into the game, but even then, they never troubled Dortmund goalkeeper Roman Bürki and BVB took the one-goal advantage into the break.
Both coaches made a change at the half taking off players who had already received two of the five yellow cards handed out in the first half. Peter Stöger sent on Julian Weigl for Mahmoud Dahoud for BVB, while Jonathan de Guzman replaced Ante Rebic for Frankfurt.
Substitutions pay off
Niko Kovac's substitution paid off quickly, with de Guzman helping to create danger in the Dortmund half, taking corners and free kicks - including the one that resulted in Frankfurt's first equalizer, when another sub, Luka Jovic, got onto the end of it to head it past Bürki.
By this time, though, Stöger had made his second substitution, and it would be a crucial one, as he brought on Batshuayi for Maximilian Philipp, and less than two minutes after Jovic had drawn Frankfurt level, the Belgian international on loan from Chelsea found himself free in Hradecky's area and stroked it home for the go-ahead goal.
Short-lived joy for the visitors
This is when Kovac made his third substitution, bringing on midfielder Danny Blum for defender Carlos Salcedo - and this change worked too, when Blum beat Bürki for Frankfurt's second equalizer. However, three minutes later, Batshuayi ensured that Frankfurt's joy was short lived.
As it happened:
95' Aytekin blows the final whistle. Dortmund win 3-2 and go to third in the table. Frankfurt remain in fifth.
94' Goal for Dortmund! Batshuayi strikes again. Surely that must be the win for BVB!
91' Goal for Frankfurt! Danny Blum gets on the end of a low cross though Bürki's box.
90' Four minutes of time added on to be played.
87' Time to secure the three points, thinks Peter Stöger. He sends on Sokratis for Reus.
85' Reus forces Hradecky into a good save off a Dortmund corner.
84' Batshuayi with a good individual effort to get into a shooting position, but he misses the target.
83' A counter from Frankfurt, Wolf gets to it on the byline, his attempted cross is caught by Bürki.
80' Kovac sends on midfielder Danny Blum, takes off Salcedo.
78' That's really put Frankfurt on the back foot.
77' Goal for Dortmund! Batshuayi makes no mistake, not even two minutes after Frankfurt had equalized.
75' Goal for Frankfurt! The Serbian sub draws Frankfurt level. He heads in from the free kick, that de Guzman dropped into the area. The Prince was right!
74' Boateng draws a foul and a free kick, urges his team forward again, he thinks Frankfurt can still get something out of this match.
70' Twenty minutes to go and it's hard to see where a goal is going to come from for Frankfurt.
67' Sebastian Haller comes off for Eintracht. He's replaced by Luka Jovic.
65' De Guzman launches himself acrobatically into a volley, but it is well off target. Kovac claps, urging his team forward.
62' Substitution for Dortmund. Michy Batshuayi replaces Maximilian Philipp.
59' Boateng has a crack from the top of the box. Corner for Frankfurt. Boateng plays to the away fans, urging them to be louder.
56' Frankfurt have been continuing to plug away but haven't troubled Bürki since that backheel. Pulisic gets an opportunity for BVB, but his effor is well off the mark.
48' Another corner, this time Boateng gets it and backheels towards the bottom corner, forcing Bürki into a good save.
47' The Canadian-born Dutchman, Jonathan de Guzman has come on for Ante Rebic. He gets a free kick from a good distance, but it is deflected wide. The resulting corner kick causes no trouble for the BVB back line.
46' We're back underway at the Signal Iduna Park!
46' Deniz Aytekin blows his whistle right on 46 minutes to end the half. After looking much the weaker side early, Frankfurt steadied the ship in the last 20 minutes or so. Down just a goal, Niko Kovac's men have it all to play for in the second half. Peter Stöger's men would have liked to have made more of their early chances.
45' Just one minute of added time to be played.
43' Eintracht have indeed had more of the ball in the last little while, but Bürki could be relaxing in a rocking chair for all the work he's had.
36' Salcedo joins him in the book. Frankfurt take a 3-2 lead in terms of yellow cards. At this rate, it's hard to see both teams finishing this match with 11 men.
33' Now Manuel Akanji goes into the book for his challenge on Ante Rebic. This is very much the physical battle that we had expected.
30' Dahoud takes a crack from outside the box, but that fails to trouble the Frankfurt goalkeeper.
28' Ante Rebic picks up a yellow card. That doesn't particularly help Frankfurt's cause.
27' The second yellow goes to Mahmoud Dahoud.
22' Schürrle makes his way into the Frankfurt area, but his shot is deflected wide. The resulting corner is easily plucked down by Hradecky.
18' Dortmund look to be in complete control, Frankfurt have had precious little of the ball to this point.
12' Goal for Dortmund! It's an own goal for Marco Russ. What a terrible start to the match for the Frankfurt defender. First a yellow card, then an own goal! Had he not got a foot to it, Reus was just behind him waiting to knock it in.
10' Pulisic with a nice cross for Schürrle, but his header goes wide. Actually, that header looked involuntary, almost as if Schürrle saw it too late.
9' Corner for BVB, but the Frankfurt defenders are able to clear the danger.
7' The ball falls for Reus but his volley goes just wide of Hradecky's cage.
6' Chandler fouls Pulisic and Frankfurt may have been lucky not to have received a second yellow.
3' Marco Russ draws the first yellow card just over two minutes into the game. It was a deserved one after he went lunging in on Marco Reus.
1' Dortmund kick off to start the match!
17:58: Frankfurt win the toss and the captain, Abraham chooses to stay put on their side.
17:56: And the players make their way onto the pitch. This should be quite a battle!
17:54: We start with the lineups:
The late Sunday kickoff on Matchday 26 in the Bundesliga sees two teams that are tied on 42 points face each other in the Signal Iduna Park in Dortmund. The two are part of a pack of teams between second and fifth spot in the standings, who are separated by just four points. The winner of this one – if there is a winner, will claim an important three points in their bid to finish in the top four Champions League places.