Borussia Dortmund vs Mainz

27 May 2023 · Bundesliga · 2022/23 · Referee Marco Fritz

Full time 2 – 2

Half-time: 0–2

  • Raphael Guerreiro 69’
  • Niklas Süle 90+6’
  • Andreas Hanche-Olsen 15’
  • Karim Onisiwo 24’

Match summary

Borussia Dortmund and Mainz shared the points in a 2-2 draw. Mainz led 2-0 at half-time.

In the first half, Andreas Hanche-Olsen put Mainz ahead with a header in the 15th minute, set up by Edimilson Fernandes and Karim Onisiwo made it 0-2 with a header in the 24th minute, set up by Jae-Sung Lee. In the second half, Raphael Guerreiro pulled one back to make it 1-2 in the 69th minute, set up by Giovanni Reyna and Niklas Süle equalised in stoppage time, set up by Giovanni Reyna.

Borussia Dortmund had the better of the chances, with 4.10 expected goals (xG) from 29 shots to Mainz's 1.68 from 10. Sébastien Haller had a penalty saved for Borussia Dortmund.

Match stats

Borussia Dortmund Mainz
30 Shots 10
12 Shots on Target 4
6 Corners 3
1 Yellow Cards 1
0 Red Cards 0
4.10 xG 1.68
3.34 Non-penalty xG 1.68
10 Deep Completions 5

Key events

Borussia Dortmund Mainz
Kick-off
15’
Andreas Hanche-Olsen
Assist: Edimilson Fernandes
0-1 (Mainz)
24’
Karim Onisiwo
Assist: Jae-Sung Lee
0-2 (Mainz)
Half-time0-2
Raphael Guerreiro
Assist: Giovanni Reyna
1-2 (Borussia Dortmund)
69’
Niklas Süle
Assist: Giovanni Reyna
2-2 (Borussia Dortmund)
90+6’
Full-time2-2

Bookings

Card times are not on file for this game, so they are listed without a minute.

Borussia Dortmund
  • Raphael Guerreiro
Mainz
  • Edimilson Fernandes

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 4.10 1.68 15’ Andreas Hanche-Olsen (Mainz), 0-1 15’ 24’ Karim Onisiwo (Mainz), 0-2 24’ 69’ Raphael Guerreiro (Borussia Dortmund), 1-2 69’ 90+6’ Niklas Süle (Borussia Dortmund), 2-2 90+6’ 0 1 2 3 4 5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 4.10 1.68 15’ Andreas Hanche-Olsen (Mainz), 0-1 Hanche-Olsen 15’ 24’ Karim Onisiwo (Mainz), 0-2 Onisiwo 24’ 69’ Raphael Guerreiro (Borussia Dortmund), 1-2 Guerreiro 69’ 90+6’ Niklas Süle (Borussia Dortmund), 2-2 Süle 90+6’
Borussia Dortmund 4.10 xGMainz 1.68 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Mainz attacking Borussia Dortmund attacking 
19’ Sébastien Haller (Borussia Dortmund), penalty, 0.76 xG, saved 90+1’ Karim Onisiwo (Mainz), open play, 0.58 xG, off target 49’ Donyell Malen (Borussia Dortmund), open play, 0.49 xG, hit the woodwork 62’ Donyell Malen (Borussia Dortmund), open play, 0.46 xG, off target 84’ Mats Hummels (Borussia Dortmund), set piece, 0.43 xG, off target 24’ Karim Onisiwo (Mainz), open play, 0.36 xG, goal 59’ Sébastien Haller (Borussia Dortmund), open play, 0.37 xG, off target 90+2’ Marlon Mustapha (Mainz), open play, 0.31 xG, off target 44’ Julian Brandt (Borussia Dortmund), open play, 0.28 xG, saved 74’ Marco Reus (Borussia Dortmund), open play, 0.26 xG, off target 48’ Jae-Sung Lee (Mainz), open play, 0.11 xG, saved 90+6’ Niklas Süle (Borussia Dortmund), open play, 0.11 xG, goal 30’ Emre Can (Borussia Dortmund), open play, 0.10 xG, off target 35’ Dominik Kohr (Mainz), from a corner, 0.08 xG, blocked 57’ Karim Onisiwo (Mainz), open play, 0.09 xG, hit the woodwork 69’ Raphael Guerreiro (Borussia Dortmund), open play, 0.09 xG, goal 73’ Marco Reus (Borussia Dortmund), open play, 0.08 xG, off target 64’ Giovanni Reyna (Borussia Dortmund), open play, 0.07 xG, blocked 78’ Giovanni Reyna (Borussia Dortmund), open play, 0.06 xG, saved 15’ Andreas Hanche-Olsen (Mainz), from a corner, 0.05 xG, goal 90’ Giovanni Reyna (Borussia Dortmund), set piece, 0.06 xG, off target 7’ Sébastien Haller (Borussia Dortmund), open play, 0.05 xG, blocked 7’ Niklas Süle (Borussia Dortmund), from a corner, 0.05 xG, saved 76’ Sébastien Haller (Borussia Dortmund), open play, 0.05 xG, saved 15’ Edimilson Fernandes (Mainz), open play, 0.04 xG, blocked 34’ Julian Brandt (Borussia Dortmund), open play, 0.04 xG, saved 62’ Emre Can (Borussia Dortmund), open play, 0.04 xG, off target 67’ Youssoufa Moukoko (Borussia Dortmund), open play, 0.04 xG, off target 80’ Aarón Martín (Mainz), direct free kick, 0.05 xG, saved 64’ Youssoufa Moukoko (Borussia Dortmund), from a corner, 0.04 xG, off target 43’ Raphael Guerreiro (Borussia Dortmund), open play, 0.03 xG, off target 4’ Donyell Malen (Borussia Dortmund), open play, 0.03 xG, off target 32’ Raphael Guerreiro (Borussia Dortmund), open play, 0.03 xG, blocked 89’ Julien Duranville (Borussia Dortmund), open play, 0.02 xG, off target 47’ Mats Hummels (Borussia Dortmund), open play, 0.02 xG, saved 47’ Niklas Süle (Borussia Dortmund), from a corner, 0.02 xG, off target 43’ Niklas Süle (Borussia Dortmund), open play, 0.01 xG, blocked 53’ Julian Brandt (Borussia Dortmund), open play, 0.01 xG, saved 90+4’ Leandro Barreiro Martins (Mainz), open play, 0.01 xG, off target 19’ Sébastien Haller (Borussia Dortmund), penalty, 0.76 xG, saved 90+1’ Karim Onisiwo (Mainz), open play, 0.58 xG, off target 49’ Donyell Malen (Borussia Dortmund), open play, 0.49 xG, hit the woodwork 62’ Donyell Malen (Borussia Dortmund), open play, 0.46 xG, off target 84’ Mats Hummels (Borussia Dortmund), set piece, 0.43 xG, off target 59’ Sébastien Haller (Borussia Dortmund), open play, 0.37 xG, off target 24’ Karim Onisiwo (Mainz), open play, 0.36 xG, goal 90+2’ Marlon Mustapha (Mainz), open play, 0.31 xG, off target 44’ Julian Brandt (Borussia Dortmund), open play, 0.28 xG, saved 74’ Marco Reus (Borussia Dortmund), open play, 0.26 xG, off target 48’ Jae-Sung Lee (Mainz), open play, 0.11 xG, saved 90+6’ Niklas Süle (Borussia Dortmund), open play, 0.11 xG, goal 30’ Emre Can (Borussia Dortmund), open play, 0.10 xG, off target 57’ Karim Onisiwo (Mainz), open play, 0.09 xG, hit the woodwork 69’ Raphael Guerreiro (Borussia Dortmund), open play, 0.09 xG, goal 35’ Dominik Kohr (Mainz), from a corner, 0.08 xG, blocked 73’ Marco Reus (Borussia Dortmund), open play, 0.08 xG, off target 64’ Giovanni Reyna (Borussia Dortmund), open play, 0.07 xG, blocked 78’ Giovanni Reyna (Borussia Dortmund), open play, 0.06 xG, saved 90’ Giovanni Reyna (Borussia Dortmund), set piece, 0.06 xG, off target 15’ Andreas Hanche-Olsen (Mainz), from a corner, 0.05 xG, goal 7’ Sébastien Haller (Borussia Dortmund), open play, 0.05 xG, blocked 7’ Niklas Süle (Borussia Dortmund), from a corner, 0.05 xG, saved 76’ Sébastien Haller (Borussia Dortmund), open play, 0.05 xG, saved 80’ Aarón Martín (Mainz), direct free kick, 0.05 xG, saved 15’ Edimilson Fernandes (Mainz), open play, 0.04 xG, blocked 34’ Julian Brandt (Borussia Dortmund), open play, 0.04 xG, saved 62’ Emre Can (Borussia Dortmund), open play, 0.04 xG, off target 67’ Youssoufa Moukoko (Borussia Dortmund), open play, 0.04 xG, off target 64’ Youssoufa Moukoko (Borussia Dortmund), from a corner, 0.04 xG, off target 4’ Donyell Malen (Borussia Dortmund), open play, 0.03 xG, off target 43’ Raphael Guerreiro (Borussia Dortmund), open play, 0.03 xG, off target 32’ Raphael Guerreiro (Borussia Dortmund), open play, 0.03 xG, blocked 89’ Julien Duranville (Borussia Dortmund), open play, 0.02 xG, off target 47’ Mats Hummels (Borussia Dortmund), open play, 0.02 xG, saved 47’ Niklas Süle (Borussia Dortmund), from a corner, 0.02 xG, off target 43’ Niklas Süle (Borussia Dortmund), open play, 0.01 xG, blocked 53’ Julian Brandt (Borussia Dortmund), open play, 0.01 xG, saved 90+4’ Leandro Barreiro Martins (Mainz), open play, 0.01 xG, off target
Size shows xG Goal On target Off target or blocked

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

Player stats

PlayerPosMinGAShxGxAKPCards
Gregor Kobel GK900 0.000.000
Marius Wolf DEF490 0.000.062
Mats Hummels DEF902 0.450.213
Niklas Süle DEF9014 0.190.082
Julian Ryerson DEF830 0.000.773
Donyell Malen MID663 0.980.000
Emre Can MID902 0.140.513
Raphael Guerreiro MID9013 0.150.011
Julian Brandt MID653 0.330.072
Karim Adeyemi MID390 0.000.000
Sébastien Haller FWD904 1.220.081
Marco Reus Sub512 0.340.712
Youssoufa Moukoko Sub412 0.080.371
Julien Duranville Sub251 0.020.112
Giovanni Reyna Sub2423 0.190.264
Anthony Modeste Sub70 0.000.000

Starters first, then substitutes. xA is expected assists.

Before kick-off

Borussia Dortmund win 80% Avg odds 1.20
Draw 12% Avg odds 8.02
Mainz win 8% Avg odds 12.46

Chances implied by the average closing odds, with the bookmaker margin removed.

Form going into the game

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

Previous and next meeting

Shots, expected goals and player data from Understat. Results and odds from football-data.co.uk. Referee data before 2025/26 from the Transfermarkt datasets project.