Borussia Dortmund player ratings against Bayern Munich
Marwin Hitz: 6/10
Marwin Hitz started in place of usual first-choice goalkeeper Roman Burki, who was sidelined alongside Jadon Sancho as a result of respiratory infections. He didn't do anything poorly or look out of place, making four saves over the 90 minutes against a Bayern Munich side who tailed off in the second half.
However, he'll be frustrated with the way he conceded Tolisso's opener and Kimmich's winner - both shots that he could have done better with.
He saved the first onto the crossbar and watched helplessly as the Frenchman was on hand to slot home on the line while Kimmich's moment of improvisation had been caused by him blocking an initial effort straight back into his path.
Although neither was the direct result of poor goalkeeping, he'll look back knowing that with better positioning, he would have saved both.
Felix Passlack: 6.5/10
Felix Passlack regularly provided width down the left-hand side for Dortmund with intelligent forward movement. He played out of position, with personnel issues meaning he was trusted to do a job by Lucien Favre.
His passing was tidy (team-high 91.1% success), and he showed great awareness to track back at times when Dortmund found themselves vulnerable at the back on the counter but as the match continued, his influence waned.
Emre Can: 6.5/10
With five clearances, four successful dribbles and two tackles, this was a frustrating outing for Emre Can.
He found himself stifled in central defence at times where you could see him visibly urging teammates forward with Bayern Munich two goals ahead.
He took matters into his own hands at times and did okay, driving into midfield and trying to help create goalscoring opportunities but there was limited movement for large periods and that didn't exactly help his pass accuracy (72.3%) as he forced play when he didn't need to. It was an okay display but also proved unspectacular.
Mats Hummels: 6.5/10
Just like Can, this was a busy and ultimately frustrating evening's work for Mats Hummels against his former teammates.
He made five clearances, two tackles and a block in 76 minutes before being replaced as Favre opted for fresh legs in the experienced Lukasz Piszczek.
The captain won six of his ten duels contested and completed a few important headed clearances but found himself caught out in the build-up to Tolisso's goal.
If not for that, he'd have been rated higher than his fellow defenders.
Manuel Akanji: 6.5/10
For large periods of the game, you didn't notice Manuel Akanji was really there on the left-hand side of Dortmund's backline.
He wasn't really called into action much until the second half and made six total defensive interventions in 90 minutes, but also seemed visibly frustrated.
Muller leapt above Passlack for Bayern Munich's second goal, and the Swiss international knew if he was there instead, he'd probably have defended it better.
Everyone was caught out for Bayern Munich's first goal- from a Dortmund corner- but Kimmich's winner came from a pass infield by Akanji into Delaney. Small margins...
Thomas Meunier: 6/10
This was always going to be a difficult evening for Thomas Meunier as he was up against the Coman-Davies combination down Bayern Munich's left-hand side. While Coman struggled to really get going, the same certainly couldn't be said for his teenage teammate.
Davies relished the opportunity to race down the flank and caused Meunier multiple issues - refusing to relent despite being dispossessed upon occasion.
No player across either side made more than his six tackles, yet his match was rather typified by a sequence early into the second half.
His overlapping run into the area was met with an incisive pass, yet he fired horribly wide with the scores still 2-1. Favre couldn't believe it and neither could he.
Mahmoud Dahoud: 6/10
Mahmoud Dahoud was the player who produced that incisive pass but the 24-year-old's ability to unlock Bayern Munich's defence went rather unnoticed for large periods.
He appeared rather pedestrian in the first half, both before and after he fired well over the bar as Delaney and Brandt combined during a well-worked move.
The same could be said during the second half too, though he got more involved after being visibly fired up after giving away a cheap foul.
Thomas Delaney: 7/10
It was an unfortunate ending to a quietly impressive display by Thomas Delaney, who created Haaland's equaliser and made his presence felt in a way midfield partner Dahoud couldn't.
He made a team-high four interceptions, completed two dribbles and was rightly thanked after his defence-splitting pass set Haaland through on goal.
However, all of that credit suddenly disintegrated in the 82nd minute as Kimmich pinched the ball from behind him and went on to score.
He should have checked over his shoulder to scan for danger but instead, felt confident that Akanji didn't pass it to him under pressure - that proved decisive.
Marco Reus: 7/10
Making his first start since February 4, it was always going to be interesting to see how captain Marco Reus would approach this game against familiar opponents.
His ball retention was poor (69.2%) but besides that, he did himself justice with an impactful performance on both ends of the pitch - something many wouldn't expect from someone with his horrid injury luck and inability to last a full 90 minutes.
He made three tackles, two interceptions and one clearance while showing great invention and spatial awareness to create half-chances out of seemingly nothing.
Bayern Munich's Lucas Hernandez needed to make an inch-perfect block at the near post to thwart his goalwards strike, from which the Bundesliga champions took the lead. Importantly, he never stopped running - forcing a key save from Neuer before creating Haaland's second big chance with an over-the-top pass.
Julian Brandt: 6.5/10
This was another frustrating watch from Julian Brandt, who ended an eight-month goal drought but also relinquished possession rather cheaply and it seemed to affect his morale in a game in which he was largely on the periphery.
He took his goal well to make it 2-1 before half-time but those moments of incision from him were few and far between. His corner deliveries (4) were all inaccurate.
He played a few nice passes, yet struggled to really get going in the final third, leaving others to take on more creative responsibility as they got back into the game.
Erling Braut Haaland: 7.5/10
Erling Haaland's persistence after a frustrating first half paid dividends as he scored one and created another during an eventful turnaround for Dortmund.
With that being said, he'll rue his second attempt - prompting a big save from Neuer at 2-2 - but held up play well against Javi Martinez and tried to bring teammates into play where possible.
That was easier said than done at times with limited forward movement but he made the most of it while applying pressure from the front and acquitted himself well nonetheless.
Nico Schulz: 5.5/10
Nico Schulz tried to inject pace down the right-hand side with 25 minutes left and made himself readily available on the overlap but was neither found nor particularly involved.
Dortmund cheaply surrendered possession and Schulz, making his first appearance since late June, didn't exactly help in that regard either (63.2% pass success).
Just like Schulz, Reinier was an effective pair of fresh legs at a time when Bayern Munich were rocking slightly.
It was a surprise he replaced Haaland, rather than partnering him in the final third, and he only had 10 touches in 22 minutes (62.5% pass success). That says it all.
Giovanni Reyna, Jude Bellingham and Lukasz Piszczek: N/A
The BVB trio were late subs, with not enough time to warrant a fair rating.