Bayern Munich have gone four points clear of Borussia Dortmund at the top of the Bundesliga after a 3-2 win in a chaotic, controversial Klassiker.
Robert Lewandowski scored the winning goal – his second of the night – from the penalty spot after referee Felix Zwayer and the video assistant (VAR) adjudged Mats Hummels' handball in the box to have been deliberate.
The decision saw Dortmund head coach Marco Rose sent to the stands for his furious reaction, after having watched his team match Bayern for 80 minutes in an exciting, evenly matched, yet error-strewn game.
Hummels in particular played unfortunate roles in all three Bayern goals.
Shortly after Julian Brandt had given Dortmund an early lead, Hummels lost possession in the center circle when pressed by Thomas Müller, Bayern broke and Robert Lewandowski made no mistake to equalize.
Just before halftime, the slapstick went up another notch. Raphael Guerreiro fired his clearance straight at Hummels and the ball bounced into the path of Leroy Sané whose shot was deflected in off Marco Reus.
Erling Haaland drew Dortmund level again after the break, curling home past Manuel Neuer after Bayern defender Dayot Upamecano had done his best impression of Dortmund's defense when trying to clear.
The second half continued at the same breathtaking pace, with Brandt suffering a concussion and having to be stretchered off and Bayern's Lucas Hernandez putting his leg on the line to block a shot, before Lewandowski's late penalty decided the game – and gave Bayern a big lead in the title race.
Relive the action on page 2
90' FINAL: Borussia Dortmund 2-3 Bayern Munich
90+9' Full on to the finish!
With Borussia Dortmund goalkeeper Gregor Kobel pulled from his goal, Marco Reus's corner is cleared. Nico Schulz then turned the ball over trying to find a shot, giving Bayern's Corentin Tolisso an open field with an empty goal. But the French midfielder couldn't find the target.
What a crazy game!
90' That's a lot of added time!
Enjoying the game? Then you can enjoy it for 10 minutes longer.
The referee has have added 10 minutes of stoppage time. Some of the stoppages that have factored in:
Julian Brandt needing to be carried off
Marco Rose receiving two yellow cards
Both Bayern and Dortmund have used four substitutes
82' Erling Haaland comes off
The Norwegian striker has been taken off with minutes remaining before the final whistle.
Minutes before, Haaland appeared to be discussing with Marco Rose how long he should remain in the game. The 21-year-old is playing in just his second game after missing a month though injury.
Steffen Tigges, a striker from Dortmund's reserve team, replaced Haaland up top. Nico Schulz also came on for Raphael Guerreiro, another move that appears to have been made with long-term fitness in mind.
77' GOAL Bayern Munich (Robert Lewandowski pen.)
Crazy scenes in Dortmund!
With the help of VAR, Felix Zwayer gave a penalty to Bayern Munich after the ball hit Mats Hummels' arm on a corner. Robert Lewandowski converted the penalty to put Bayern Munich back ahead.
Dortmund coach Marco Rose, who had received a yellow card earlier in the game, was sent off with a second yellow.
Only in the Klassiker!
73' Updated lineups
After more changes, here are the players currently on the field.
66' Brandt forced to come off after aerial collision
Julian Brandt and Dayot Upamecano knocked heads while going up for an aerial challenge. Players from both teams urged the athletic training staff to come onto the field.
Upamecano came away from the incident fine, but Brandt had to be carried off on a stretcher. Marius Wolf came on for Dortmund in his place.
65' First substitutions of the game
Julian Nagelsmann brought on fresh legs to try to put his side back into the lead. Serge Gnabry replaced Leroy Sane and Jamal Musiala came on for Leon Goretzka.
Five minutes earlier, Donyell Malen, who has scored in his last three games, replaced Mohamed Dahoud for Dortmund.
54' Penalty shout for Dortmund?
The Dortmund crowd rose to its feet as Marco Reus went to ground in the penalty area after battling for the ball with Lucas Hernandez, but referee Felix Zwayer refuses to give a penalty.
51' Yellow Card: Emre Can
The German midfielder goes into the book for a reckless challenge just outside the penalty area. Leroy Sane's ensuing free kick flew over the bar.
48' GOAL Borussia Dortmund (Erling Haaland)
He's just a different kind of goalscorer.
Bayern's Dayot Upamecano turned it over to Jude Bellingham at the top of the penalty area. The English forward swong the ball over to Haaland on the left, and the Norwegian striker curled an effort off the post and in.
According to Bundesliga statistics, Haaland had a 5% chance of scoring from that angle.
Haaland has now scored at least once in his last six Bundesliga games.
Some statistics at the break:
Shots: Dortmund 5, Bayern 11
Possession: Dortmund 43%, Bayern 57%
Passing success: Dortmund 79%, Bayern 83%
Expected goals: Dortmund 0.59, Bayern 1.81
44' GOAL Bayern Munich (Kingsley Coman)
A well deserved goal for Coman, though one Dortmund probably could have prevented.
Raphael Guerreiro failed to clear properly after Robert Lewandowski's shot was blocked. Kingsley Coman received the ball at the top of the penalty area and fired in the go-ahead goal.
The French forward, whose contract expires at the end of the season, has had an up-and-down campaign this season. He missed time in September to address a heart issue, but he's remained potent when he's been on the field — he has 4 goals and an assist in 14 games for Bayern this term.
Coman has also taken to his role as a right wing-back in Julian Nagelsmann's unorthodox attacking formation. The jury remains out whether he, Leroy Sane, Serge Gnabry and Thomas Müller can all be on the field at the same time.
42' Yellow Card: Corentin Tolisso
The French midfielder goes into the book for his tackle on Marco Reus.
Tolisso is starting in place of Joshua Kimmich, who tested positive for COVID-19 in November. Though Tolisso has held his own in Kimmich's stead, the Frenchman presents quite the downgrade for Bayern.
29' Erling Haaland so close!
Haaland was home free after a quick exchange with Marco Reus in midfield, but he pulled his shot a bit too wide to the right.
The Norwegian striker has had room to run in this game with Bayern Munich's defense playing so high. It might be only a matter of time before he puts Dortmund back into the lead.
25' Wide-open 'Klassiker'
Both teams are pushing forward quickly when they gain possession. A Dortmund attack was quickly countered with a Bayern counterattack in which Bayern's Kingsley Coman tested Dortmund goalkeeper Gregor Kobel with a blistering shot from the right side of the penalty area.
Bayern have five shots in the early going while Dortmund have two, but this is the type of game that makes this fixture so special.
9' GOAL Bayern Munich (Robert Lewandowski)
And just like that we're level again. More please!
Thomas Müller blocked a pass from former Bayern teammate Mats Hummels near the halfway. The two then battled for control before Lewandowski snatched possession. The striker then did what he does best: find the back of the net.
The goal was Lewandowski's 15th of the Bundesliga season and his 65th in 2021 for club and country. "That's my Ballon d'Or winner," Germany legend Lothar Matthäus said on the Sky Germany broadcast.
5' GOAL Borussia Dortmund (Julian Brandt)
If you expected Julian Brandt to open the scoring, you're either a genius or lying.
Brandt received the ball at the top of the penalty area, maneuvered around the sliding challenge of Alphonso Davies, and fired into the top corner. The goal was Brandt's third for Dortmund this season.
The 104th Bundesliga game between Borussia Dortmund and Bayern Munich is now underway.
Live on Twitter Spaces!
If you want the latest news, expert analysis and somewhere to share your thoughts ahead of the big Bundesliga showcase this evening, tune into our Twitter Spaces chat with DW's Jonathan Harding, Jasmine Baba and Matt Ford.
Limited capacity in Dortmund
A mere 15,000 spectators were allowed to enter Signal Iduna Park for the match, less than a fifth of what the stadium holds.
The Dortmund stadium is one of the largest in Europe with a capacity of more than 81,000. The stadium's famous south stand, also known as the "yellow wall," is also empty.
This is the first game the stadium has hosted since Germany's government instituted new rules amid the country's coronavirus surge.
Oliver Kahn 'shocked' Robert Lewandowski didn't win the Ballon d'Or
Speaking pregame to Sky Germany, former Germany goalkeeper and current Bayern Munich CEO Oliver Kahn expressed his dismay over this week's Ballon d'Or ceremony.
The coveted award handed out by magazine France Football went to Argentine star Lionel Messi for the seventh time. Robert Lewandowski, who has never won the award, finished second, but he did win the newly formed "Striker of the Year" Award.
"We were all shocked," Kahn told Sky. "[Lewandowski] scored 41 goals (in the Bundesliga). What else can you do?"
Kahn himself finished third in Ballon d'Or voting in 2001, the year English striker Michael Owen won, and 2002 when Brazil legend Ronaldo took home the prize for the second time.
Wet conditions at Dortmund's stadium
It appears we have a slippery contest on our hands. According to local weather reports, it is set to be 5 degrees Celsius (41 degrees Fahrenheit) at kickoff and there is a 97% chance of rain.
Haaland, Bellingham, Guerreiro return for Dortmund
Dortmund have their star striker back in the starting lineup. Erling Haaland, who scored eight minutes after coming off the bench last week, has replaced Donyell Malen atop Dortmund's formation.
Despite a month-long injury layoff, Haaland is among the Bundesliga's best goalscorers 10 goals in nine games this season. He has scored 50 goals in 50 career Bundesliga games, the fastest player to reach that milestone in Germany's top-flight.
Also returning for Dortmund is Jude Bellingham, one of their key midfielders this season. The 18-year-old did not play last week due to a knee injury.
Defender Raphael Guerreiro is also back in the starting lineup after missing most of October and November with muscular issues. He has three goals in seven Bundesliga games this season for Dortmund.
After scoring off the bench on his return from injury, the Norwegian striker could reappear in Borussia Dortmund's starting lineup. Haaland is one of just two players who have scored 10 Bundesliga goals so far this season — the other is his opposite number on Saturday, Bayern's Robert Lewandowski.
Erling Haaland: 50 goals in 50 Bundesliga games
If he does end up starting, he is likely to line up next to Donyell Malen, his replacement while he was out injured. After a slow start to the season, Malen has scored in each of his last three games.
Under the new rules, only people who are either vaccinated against or recovered from COVID-19 will be admitted. Spectators will also be required to wear masks, and standing terraces will be closed.
The new measures come as Germany report record highs in coronavirus cases, with new cases exceeding 74,000 on Friday. North-Rhine Westphalia, the state in which Dortmund is located, is less affected by the recent surge as other parts of the country, but still has a daily incidence rate of 288.1 new cases per 100,000 inhabitants over the last week.
Jude Bellingham ruled out
The biggest absentee for Marco Rose and Dortmund is Jude Bellingham. The English midfielder will miss his second straight game with a knee injury. The teenager has been a crucial part of Rose's midfield — he has three goals and six assists in 20 games this season for Dortmund.
Here is the full list of Dortmund absentees:
Jude Bellingham (knee)
Thorgan Hazard (quarantine)
Mateu Morey (knee)
Youssoufa Moukoko (muscle tear)
Giovanni Reyna (thigh)
Joshua Kimmich still out with COVID-19
The defending league champions have dealt with a fair bit of squad turmoil in recent weeks. Some players, like midfield talisman Joshua Kimmich, remain in quarantine after testing positive for COVID-19, while others are dealing with injuries.
Here is the full list of Bayern absentees:
Eric Maxim Choupo-Moting (COVID-19)
Joshua Kimmich (COVID-19)
Marcel Sabitzer (calf)
Bouna Sarr (adductor)
Josip Stanisic (muscle tear)
How have Borussia Dortmund played this season?
True to form, Dortmund have experienced plenty of ups and downs in Marco Rose's first season. A loss against Freiburg earlier this season cast doubt on the club's ability to compete for a league title. But the club has since proven to be a strong Bundesliga adversary, even when Erling Haaland was out injured.
The most notable statistic of all is that Rose's side has kept just one clean sheet in the Bundesliga this season — not necessarily a good omen for when the nine-time defending champions come to town.
How have Bayern Munich played this season?
Under Julian Nagelsmann, who joined the club from RB Leipzig with a record fee attached, Bayern have, for the most part, not skipped a beat.
Lead striker Robert Lewandowski, who recently lost out on the Ballon d'Or to Lionel Messi, remains formidable as ever — he has 14 goals in 13 Bundesliga games and is the Champions League's top scorer having scored nine. Thomas Müller continues to age gracefully, and Leroy Sané has bounced back from a tough first season to provide nine goals and 10 assists in all competition.