Bayern Munich vs Borussia Dortmund

31 October 2026 · Bundesliga · 2026/27 · Referee Tobias Stieler

Full time 2 – 2

Half-time: 1–0

  • Konrad Laimer 38’
  • Dayotchanculle Upamecano 66’
  • Serhou Guirassy 60’
  • Fabio Silva 89’

Match summary

Bayern Munich and Borussia Dortmund drew 2-2. Bayern Munich led 1-0 at half-time.

In the first half, Konrad Laimer put Bayern Munich ahead in the 38th minute. In the second half, Serhou Guirassy equalised in the 60th minute, set up by Carney Chukwuemeka, Dayotchanculle Upamecano put Bayern Munich back in front from a corner in the 66th minute, set up by Harry Kane, and Fabio Silva equalised from a corner in the 89th minute, set up by Konstantinos Karetsas.

Bayern Munich had the better of the chances, with 3.97 expected goals (xG) from 23 shots to Borussia Dortmund's 0.63 from 12. Harry Kane hit the woodwork from the penalty spot for Bayern Munich.

Bayern Munich dominated the territorial battle and created a high volume of opportunities in their Bundesliga matchday 8 fixture against Borussia Dortmund, ending in a 2-2 draw. The hosts controlled 56 percent of possession, registered 23 shots to their opponents 12, and earned 5 corners compared to 2. Bayern completed 603 passes with an 86 percent accuracy rate, while also leading in dangerous attacks at 51 to 31. Despite generating an expected goals total of 3.97 against Borussia Dortmund's 0.63, Bayern had to settle for a shared point. Both sides recorded 3 offsides, while the foul count finished 11 to 6, with 2 yellow cards shown to the home side and 1 to the visitors.

The opening half saw Jobe Bellingham receive a yellow card in the 6th minute for a foul, followed by first-half substitutions for Bayern with Nathaniel Brown and Josip Stanisic replacing injured teammates. Konrad Laimer opened the scoring in the 38th minute with a right foot shot to make it 1-0 at half-time. After the restart, Josip Stanisic was booked in the 53rd minute, and Harry Kane missed a penalty in the 56th minute. Serhou Guirassy equalised for Borussia Dortmund with a left foot shot in the 60th minute, before Dayot Upamecano restored Bayern's lead at 2-1 with a right foot shot in the 66th minute. Konrad Laimer picked up a yellow card in the 74th minute, and Fábio Silva secured the 2-2 draw for Borussia Dortmund with a right foot shot in the 89th minute.

Match stats

56% Possession 44%
23 Shots 12
5 Shots on target 6
5 Corners 2
125 Attacks 88
51 Dangerous attacks 31
603 Passes 483
86% Pass accuracy 82%
12 Tackles 19
11 Fouls 6
2 Yellow cards 1
0 Red cards 0
3 Offsides 3

Key events

Bayern Munich Borussia Dortmund
Kick-off
6’
22’
Jobe BellinghamShot on target
Ismael SaibariShot on target
24’
31’
34’
Jobe BellinghamVAR review
Konrad LaimerRight foot shot1-0 (Bayern Munich)
38’
Konrad LaimerShot on target
38’
45+2’
Corner
Half-time1-0
Konrad LaimerShot on target
47’
Corner
48’
Second half underway
53’
Corner
55’
Harry KaneMissed penalty
56’
59’
Felix NmechaShot on target
60’
Serhou GuirassyLeft foot shot1-1 (Borussia Dortmund)
Corner
62’
Corner
64’
Dayot UpamecanoRight foot shot2-1 (Bayern Munich)
66’
Corner
66’
74’
83’
Jobe BellinghamShot on target
83’
Fabio SilvaShot on target
84’
89’
Fábio SilvaRight foot shot2-2 (Borussia Dortmund)
89’
Corner
Full-time2-2

How the chances added up

Running total of expected goals (xG) for each side through the match. xG rates each chance by how often similar shots are scored. A goal is marked where it was scored.

0 1 2 3 4 5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 3.97 0.63 38’ Konrad Laimer (Bayern Munich), 1-0 38’ 60’ Serhou Guirassy (Borussia Dortmund), 1-1 60’ 66’ Dayotchanculle Upamecano (Bayern Munich), 2-1 66’ 89’ Fabio Silva (Borussia Dortmund), 2-2 89’ 0 1 2 3 4 5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 3.97 0.63 38’ Konrad Laimer (Bayern Munich), 1-0 Laimer 38’ 60’ Serhou Guirassy (Borussia Dortmund), 1-1 Guirassy 60’ 66’ Dayotchanculle Upamecano (Bayern Munich), 2-1 Upamecano 66’ 89’ Fabio Silva (Borussia Dortmund), 2-2 Silva 89’
Bayern Munich 3.97 xGBorussia Dortmund 0.63 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Borussia Dortmund attacking Bayern Munich attacking 
56’ Harry Kane (Bayern Munich), penalty, 0.76 xG, hit the woodwork 66’ Dayotchanculle Upamecano (Bayern Munich), from a corner, 0.57 xG, goal 38’ Konrad Laimer (Bayern Munich), open play, 0.56 xG, goal 10’ Ismael Saibari (Bayern Munich), open play, 0.42 xG, off target 38’ Konrad Laimer (Bayern Munich), open play, 0.36 xG, saved 24’ Ismael Saibari (Bayern Munich), open play, 0.30 xG, saved 66’ Konrad Laimer (Bayern Munich), open play, 0.12 xG, blocked 78’ Harry Kane (Bayern Munich), open play, 0.10 xG, off target 15’ Maximilian Beier (Borussia Dortmund), open play, 0.10 xG, blocked 60’ Serhou Guirassy (Borussia Dortmund), open play, 0.10 xG, goal 47’ Konrad Laimer (Bayern Munich), open play, 0.09 xG, saved 10’ Michael Olise (Bayern Munich), open play, 0.08 xG, blocked 47’ Carney Chukwuemeka (Borussia Dortmund), set piece, 0.07 xG, blocked 51’ Harry Kane (Bayern Munich), open play, 0.07 xG, blocked 90+4’ Nathaniel Brown (Bayern Munich), open play, 0.08 xG, off target 10’ Michael Olise (Bayern Munich), open play, 0.07 xG, hit the woodwork 15’ Carney Chukwuemeka (Borussia Dortmund), open play, 0.07 xG, blocked 41’ Jobe Bellingham (Borussia Dortmund), open play, 0.06 xG, off target 50’ Michael Olise (Bayern Munich), open play, 0.07 xG, off target 90+3’ Konrad Laimer (Bayern Munich), open play, 0.06 xG, blocked 83’ Fabio Silva (Borussia Dortmund), open play, 0.05 xG, saved 80’ Michael Olise (Bayern Munich), open play, 0.05 xG, blocked 22’ Felix Nmecha (Borussia Dortmund), open play, 0.04 xG, blocked 48’ Michael Olise (Bayern Munich), from a corner, 0.04 xG, off target 62’ Joshua Kimmich (Bayern Munich), open play, 0.04 xG, blocked 22’ Jobe Bellingham (Borussia Dortmund), open play, 0.04 xG, saved 55’ Harry Kane (Bayern Munich), from a corner, 0.03 xG, off target 62’ Joshua Kimmich (Bayern Munich), open play, 0.03 xG, off target 83’ Jobe Bellingham (Borussia Dortmund), open play, 0.03 xG, saved 89’ Fabio Silva (Borussia Dortmund), from a corner, 0.03 xG, goal 7’ Harry Kane (Bayern Munich), set piece, 0.03 xG, blocked 41’ Harry Kane (Bayern Munich), open play, 0.02 xG, off target 59’ Felix Nmecha (Borussia Dortmund), open play, 0.02 xG, saved 79’ Fabio Silva (Borussia Dortmund), open play, 0.01 xG, off target 90+5’ Lennart Karl (Bayern Munich), open play, 0.01 xG, hit the woodwork 56’ Harry Kane (Bayern Munich), penalty, 0.76 xG, hit the woodwork 66’ Dayotchanculle Upamecano (Bayern Munich), from a corner, 0.57 xG, goal 38’ Konrad Laimer (Bayern Munich), open play, 0.56 xG, goal 10’ Ismael Saibari (Bayern Munich), open play, 0.42 xG, off target 38’ Konrad Laimer (Bayern Munich), open play, 0.36 xG, saved 24’ Ismael Saibari (Bayern Munich), open play, 0.30 xG, saved 66’ Konrad Laimer (Bayern Munich), open play, 0.12 xG, blocked 78’ Harry Kane (Bayern Munich), open play, 0.10 xG, off target 60’ Serhou Guirassy (Borussia Dortmund), open play, 0.10 xG, goal 15’ Maximilian Beier (Borussia Dortmund), open play, 0.10 xG, blocked 47’ Konrad Laimer (Bayern Munich), open play, 0.09 xG, saved 10’ Michael Olise (Bayern Munich), open play, 0.08 xG, blocked 90+4’ Nathaniel Brown (Bayern Munich), open play, 0.08 xG, off target 47’ Carney Chukwuemeka (Borussia Dortmund), set piece, 0.07 xG, blocked 10’ Michael Olise (Bayern Munich), open play, 0.07 xG, hit the woodwork 15’ Carney Chukwuemeka (Borussia Dortmund), open play, 0.07 xG, blocked 51’ Harry Kane (Bayern Munich), open play, 0.07 xG, blocked 50’ Michael Olise (Bayern Munich), open play, 0.07 xG, off target 41’ Jobe Bellingham (Borussia Dortmund), open play, 0.06 xG, off target 90+3’ Konrad Laimer (Bayern Munich), open play, 0.06 xG, blocked 83’ Fabio Silva (Borussia Dortmund), open play, 0.05 xG, saved 80’ Michael Olise (Bayern Munich), open play, 0.05 xG, blocked 22’ Felix Nmecha (Borussia Dortmund), open play, 0.04 xG, blocked 48’ Michael Olise (Bayern Munich), from a corner, 0.04 xG, off target 62’ Joshua Kimmich (Bayern Munich), open play, 0.04 xG, blocked 22’ Jobe Bellingham (Borussia Dortmund), open play, 0.04 xG, saved 55’ Harry Kane (Bayern Munich), from a corner, 0.03 xG, off target 62’ Joshua Kimmich (Bayern Munich), open play, 0.03 xG, off target 83’ Jobe Bellingham (Borussia Dortmund), open play, 0.03 xG, saved 89’ Fabio Silva (Borussia Dortmund), from a corner, 0.03 xG, goal 7’ Harry Kane (Bayern Munich), set piece, 0.03 xG, blocked 41’ Harry Kane (Bayern Munich), open play, 0.02 xG, off target 59’ Felix Nmecha (Borussia Dortmund), open play, 0.02 xG, saved 79’ Fabio Silva (Borussia Dortmund), open play, 0.01 xG, off target 90+5’ Lennart Karl (Bayern Munich), open play, 0.01 xG, hit the woodwork
Size shows xG Goal On target Off target or blocked

Hover or tap a shot for the player, minute and xG.

Lineups

Bayern Munich 4-2-3-1 Starting XI
Urbig
Laimer
Upamecano
Kim
Davies
Kimmich
Pavlovic
Olise 84’
Saibari 29’
Gnabry 31’
Kane
Borussia Dortmund 3-4-2-1 Starting XI
Kobel
Schlotterbeck
Anton
Gadou 87’
Svensson
Nmecha 76’
Veerman
Beier 67’
Chukwuemeka 67’
Bellingham 87’
Guirassy

Player stats

Goalkeeper1 player
90′ 4 2 39 – – – – –
Defenders6 players
90′ 1 3 – 1 – 53 2 1 –
90′ 2 3 – 3 1 58 2 1 – –
90′ 3 2 1 7 4 63 2 – – –
90′ 1 – 1 10 1 43 1 – – –
Nathaniel Brown Came on as a substitute
61′ – – 1 1 1 16 – – – –
Josip Stanisic Came on as a substitute
59′ 2 – – 4 1 52 1 – –
Midfielders6 players
90′ – – 92 4 0.14 1 2 3 – 2 –
90′ – – 87 – – 1 1 1 3 – –
Michael Olise Taken off
84′ – 1 46 4 0.27 – – – – – –
Ismael Saibari Taken off
29′ – – 5 – – 1 – 1 – – –
Serge Gnabry Taken off
31′ – – 18 – – – 1 – – – –
Lennart Karl Came on as a substitute
11′ – – 7 – – – – – – – –
Forwards1 player
90′ – 1 6 – 1.02 0.57 1 1 – 24 –
Came on Taken off Sent off Red is the most in that position for the team

Every player who took the pitch, starters first and then substitutes. A dash means none. xG and xA are expected goals and assists.

Before kick-off

Bayern Munich win 71% Avg odds 1.33 Our estimate 68%
Draw 16% Avg odds 5.81 Our estimate 18%
Borussia Dortmund win 13% Avg odds 7.20 Our estimate 14%

Chances implied by the average closing odds, with the bookmaker margin removed. Our estimate is the figure from before kick-off. How our figures work.

Form going into the game

Last five league games before this one, oldest first. Select one to open it.

Previous and next meeting

Match report

All Bundesliga news 

Our write-up of this game.

Shots, expected goals and player data from Understat. Timeline, lineups, team and player statistics from Sportmonks. Results and odds from football-data.co.uk.