Mainz vs Hoffenheim

21 November 2025 · Bundesliga · 2025/26 · Referee Sascha Stegemann

Full time 1 – 1

Half-time: 0–1

  • Danny da Costa 76’
  • Andreas Hanche-Olsen 8’ (og)

Match summary

Mainz and Hoffenheim drew 1-1. Hoffenheim led 1-0 at half-time.

Hanche-Olsen's own goal put Hoffenheim ahead with a header in the 8th minute and Danny da Costa equalised from a corner in the 76th minute.

Mainz had the better of the chances, with 2.95 expected goals (xG) from 17 shots to Hoffenheim's 1.55 from 19. Mainz had a player sent off.

Match stats

45% Possession 55%
17 Shots 19
3 Shots on target 5
7 Corners 4
106 Attacks 136
49 Dangerous attacks 58
376 Passes 468
70% Pass accuracy 72%
6 Tackles 14
13 Fouls 13
3 Yellow cards 2
1 Red cards 0
2 Offsides 2

Key events

Mainz Hoffenheim
Kick-off
8’
Andreas Hanche-OlsenOwn goal0-1 (Hoffenheim)
15’
Fisnik AsllaniShot on target
24’
42’
BernardoFoul
Half-time0-1
Second half underway
65’
Vladimir CoufalShot on target
Nelson WeiperJae-sung Lee
67’
67’
Tim LemperleShot on target
68’
Danny da CostaRight foot shot1-1 (Mainz)
76’
Dominik Kohr: card review (VAR)
87’
88’
90’
Ihlas BebouFisnik Asllani
90+3’
Leon AvdullahuShot on target
Nadiem AmiriArgument
90+5’
Phillipp MweneArgument
90+6’
Full-time1-1

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.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.95 1.55 8’ Andreas Hanche-Olsen (Hoffenheim) own goal, 0-1 8’ 76’ Danny da Costa (Mainz), 1-1 76’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.95 1.55 8’ Andreas Hanche-Olsen (Hoffenheim) own goal, 0-1 Hanche-Olsen 8’ 76’ Danny da Costa (Mainz), 1-1 da Costa 76’
Mainz 2.95 xGHoffenheim 1.55 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Hoffenheim attacking Mainz attacking 
75’ Danny da Costa (Mainz), set piece, 0.75 xG, blocked 76’ Danny da Costa (Mainz), from a corner, 0.61 xG, goal 67’ Tim Lemperle (Hoffenheim), open play, 0.40 xG, saved 10’ Benedict Hollerbach (Mainz), open play, 0.39 xG, off target 66’ Paul Nebel (Mainz), open play, 0.37 xG, off target 33’ Paul Nebel (Mainz), open play, 0.10 xG, blocked 57’ Albian Hajdari (Hoffenheim), from a corner, 0.11 xG, blocked 60’ Grischa Prömel (Hoffenheim), open play, 0.10 xG, blocked 76’ Benedict Hollerbach (Mainz), from a corner, 0.10 xG, blocked 80’ Tim Lemperle (Hoffenheim), open play, 0.09 xG, blocked 86’ Tim Lemperle (Hoffenheim), open play, 0.09 xG, blocked 15’ Fisnik Asllani (Hoffenheim), open play, 0.09 xG, saved 49’ Fisnik Asllani (Hoffenheim), open play, 0.09 xG, off target 64’ Tim Lemperle (Hoffenheim), open play, 0.08 xG, off target 68’ Tim Lemperle (Hoffenheim), open play, 0.08 xG, blocked 90+5’ Kaishu Sano (Mainz), from a corner, 0.08 xG, off target 67’ Bazoumana Touré (Hoffenheim), open play, 0.08 xG, off target 71’ Benedict Hollerbach (Mainz), open play, 0.07 xG, blocked 58’ Philipp Mwene (Mainz), open play, 0.07 xG, off target 90+4’ Kaishu Sano (Mainz), open play, 0.07 xG, blocked 3’ Grischa Prömel (Hoffenheim), open play, 0.06 xG, blocked 29’ Benedict Hollerbach (Mainz), open play, 0.06 xG, blocked 55’ Benedict Hollerbach (Mainz), open play, 0.06 xG, off target 66’ Vladimir Coufal (Hoffenheim), open play, 0.06 xG, blocked 1’ Vladimir Coufal (Hoffenheim), open play, 0.05 xG, off target 34’ Benedict Hollerbach (Mainz), open play, 0.05 xG, blocked 69’ Benedict Hollerbach (Mainz), set piece, 0.05 xG, blocked 82’ Paul Nebel (Mainz), from a corner, 0.04 xG, blocked 45’ Benedict Hollerbach (Mainz), set piece, 0.03 xG, off target 65’ Vladimir Coufal (Hoffenheim), direct free kick, 0.04 xG, saved 71’ Andreas Hanche-Olsen (Mainz), from a corner, 0.04 xG, off target 90+3’ Leon Avdullahu (Hoffenheim), open play, 0.03 xG, saved 4’ Andrej Kramaric (Hoffenheim), from a corner, 0.02 xG, off target 27’ Grischa Prömel (Hoffenheim), open play, 0.02 xG, off target 41’ Andrej Kramaric (Hoffenheim), open play, 0.03 xG, blocked 80’ Wouter Burger (Hoffenheim), open play, 0.03 xG, off target 8’ Andreas Hanche-Olsen (Mainz), own goal 75’ Danny da Costa (Mainz), set piece, 0.75 xG, blocked 76’ Danny da Costa (Mainz), from a corner, 0.61 xG, goal 67’ Tim Lemperle (Hoffenheim), open play, 0.40 xG, saved 10’ Benedict Hollerbach (Mainz), open play, 0.39 xG, off target 66’ Paul Nebel (Mainz), open play, 0.37 xG, off target 57’ Albian Hajdari (Hoffenheim), from a corner, 0.11 xG, blocked 33’ Paul Nebel (Mainz), open play, 0.10 xG, blocked 60’ Grischa Prömel (Hoffenheim), open play, 0.10 xG, blocked 76’ Benedict Hollerbach (Mainz), from a corner, 0.10 xG, blocked 80’ Tim Lemperle (Hoffenheim), open play, 0.09 xG, blocked 86’ Tim Lemperle (Hoffenheim), open play, 0.09 xG, blocked 15’ Fisnik Asllani (Hoffenheim), open play, 0.09 xG, saved 49’ Fisnik Asllani (Hoffenheim), open play, 0.09 xG, off target 64’ Tim Lemperle (Hoffenheim), open play, 0.08 xG, off target 67’ Bazoumana Touré (Hoffenheim), open play, 0.08 xG, off target 68’ Tim Lemperle (Hoffenheim), open play, 0.08 xG, blocked 90+5’ Kaishu Sano (Mainz), from a corner, 0.08 xG, off target 71’ Benedict Hollerbach (Mainz), open play, 0.07 xG, blocked 58’ Philipp Mwene (Mainz), open play, 0.07 xG, off target 90+4’ Kaishu Sano (Mainz), open play, 0.07 xG, blocked 3’ Grischa Prömel (Hoffenheim), open play, 0.06 xG, blocked 29’ Benedict Hollerbach (Mainz), open play, 0.06 xG, blocked 55’ Benedict Hollerbach (Mainz), open play, 0.06 xG, off target 66’ Vladimir Coufal (Hoffenheim), open play, 0.06 xG, blocked 1’ Vladimir Coufal (Hoffenheim), open play, 0.05 xG, off target 34’ Benedict Hollerbach (Mainz), open play, 0.05 xG, blocked 69’ Benedict Hollerbach (Mainz), set piece, 0.05 xG, blocked 82’ Paul Nebel (Mainz), from a corner, 0.04 xG, blocked 65’ Vladimir Coufal (Hoffenheim), direct free kick, 0.04 xG, saved 71’ Andreas Hanche-Olsen (Mainz), from a corner, 0.04 xG, off target 45’ Benedict Hollerbach (Mainz), set piece, 0.03 xG, off target 41’ Andrej Kramaric (Hoffenheim), open play, 0.03 xG, blocked 80’ Wouter Burger (Hoffenheim), open play, 0.03 xG, off target 90+3’ Leon Avdullahu (Hoffenheim), open play, 0.03 xG, saved 4’ Andrej Kramaric (Hoffenheim), from a corner, 0.02 xG, off target 27’ Grischa Prömel (Hoffenheim), open play, 0.02 xG, off target 8’ Andreas Hanche-Olsen (Mainz), own goal
Size shows xG Goal On target Off target or blocked

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

Lineups

Mainz 3-4-2-1 Starting XI
Zentner
Kohr
Maloney 46’
Hanche-Olsen
Mwene
Amiri
Sano
Widmer 46’
Nebel
Hollerbach 90’
Lee 67’
Hoffenheim 4-3-1-2 Starting XI
Baumann
Bernardo
Hajdari
Hranac
Coufal
Burger
Avdullahu
Prömel
Kramaric 58’
Asllani 90’
Touré 77’

Player stats

PlayerPosMinGAShxGxAKPCards
Robin Zentner GK900 0.000.000
Dominik Kohr DEF900 0.000.751
Andreas Hanche-Olsen DEF901 0.040.000
Lennard Maloney DEF500 0.000.000
Philipp Mwene MID901 0.070.051
Silvan Widmer MID500 0.000.000
Nadiem Amiri MID900 0.000.305
Kaishu Sano MID902 0.150.000
Paul Nebel MID903 0.510.142
Benedict Hollerbach MID908 0.810.371
Jae-Sung Lee FWD710 0.000.452
Danny da Costa Sub4012 1.360.000
Sota Kawasaki Sub400 0.000.000
Nelson Weiper Sub190 0.000.000
Stefan Bell Sub10 0.000.000

Starters first, then substitutes. xA is expected assists.

Before kick-off

Mainz win 38% Avg odds 2.49
Draw 27% Avg odds 3.52
Hoffenheim win 35% Avg odds 2.67

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. Timeline, lineups and team statistics from Sportmonks. Results and odds from football-data.co.uk.