Bochum 2-0 Mainz: Horn's five saves protect a second-half lead
AI-written review based on match data · How we make it
Key numbers
- Nine shots: Mainz's fewest this season
- xG per shot: 0.18 Bochum, 0.06 Mainz
- Horn made five saves for the clean sheet
Two second-half goals settle it
Bochum beat Mainz 2-0 in the DFB-Pokal at the Vonovia Ruhrstadion, with both goals arriving after a goalless first half. Christian Rasmussen scored in the 46th minute, just after the break, and Bochum led for roughly 44 minutes. Mainz, who had averaged 3.1 goals in their earlier matches this season, never found a reply.
Mainz's shot count fell to a season low
Mainz had more shots than Bochum, nine to eight, but their xG per shot was only 0.06. It was also fewer shots than in any earlier match this season, so the volume fell as well as the quality. That suggests Mainz were far less threatening than usual, even if the raw shot count looked competitive.
Horn denies five efforts on target
Mainz did put five shots on target, but Timo Horn saved every one of them. Bochum's 1.44 xG to Mainz's 0.52 suggests their chances were the better ones, though Mainz had more efforts on target. Horn's saves are what kept the clean sheet intact on an evening when the visitors tested him repeatedly.
A substitute adds the second
Rasmussen's opening goal, set up by Gerrit Holtmann, was worth +0.7 FN xPts to Bochum. Philipp Hofmann, who replaced Rasmussen in the 63rd minute, added a second in the 75th minute from a Jarne Steuckers assist, a goal worth +0.8 FN xPts and one that left Mainz with a two-goal deficit.
FN MOM
Highest FN Score · our own pick by a published formula, not the official Player of the Match
Timo Horn 7.3Strong
He saved all five Mainz shots on target to secure the clean sheet.
Horn's value came almost entirely from shot-stopping: all five Mainz efforts on target were saved, which is why Bochum's lead from the 46th minute was never reduced. Mainz's xG was only 0.52, so this was less about a barrage than about not conceding from the shots that did arrive. By the time Hofmann made it 2-0 in the 75th minute, the margin was already protected.
Game state
1-02-0
VfL Bochum ahead 44 min · level 46 min · FSV Mainz 05 ahead 0 min
FN xPts — what each moment was worth
How much each moment changed that team's expected points (win 3, draw 1). A goal's value is credited 70% to the scorer and 30% to the assist. The value next to a team code is what the same moment did to the other side's expected points; the decisive moment is the one with the largest combined change for both teams.
46'
Christian Rasmussen
Goal · scorer +0.5 · assist Gerrit Holtmann +0.2 · M05 −0.7
+0.7
75'
Philipp Hofmann
Goal · scorer +0.6 · assist Jarne Steuckers +0.2 · M05 −0.6
+0.8
Knockout ties have no league points, so moments are weighed on a win-3/draw-1 scale only.
Pre-match expectation for VfL Bochum is an estimate: no top-five-league record, so it uses the published starting values.
How FN Score and FN xPts work →
Match stats
VfL BochumFSV Mainz 05
1.44Expected goals (xG)0.52
Compared with usual
FSV Mainz 05
8 matches this season, all competitions baseline
| This match | Avg | |
|---|
| Goals | 0 | 3.1 | |
| Conceded | 2 | 1.6 | |
| xG | 0.52 | 2.2 | |
| xG against | 1.44 | 1.5 | |
| Shots | 9 | 19.4 | low |
| On target | 5 | 7 | |
| Shots faced | 8 | 12.8 | |
| xG per shot | 0.06 | 0.13 | |
| Possession | 52% | 53.6% | |
| Passes | 467 | 481.3 | |
| Corners | 6 | 5.5 | |
| Fouls | 5 | 12.5 | low |
Timeline
- 46'
Goal
Christian Rasmussen assist Gerrit Holtmann
- 63'
Sub
Berkan Taz → Koji Miyoshi
- 63'
Sub
Lee Jae-Sung → Eric Martel
- 63'
Sub
Christian Rasmussen → Philipp Hofmann
- 63'
Sub
Silvan Widmer → Anthony Caci
- 63'
Sub
Phillip Tietz → Ransford Yeboah Königsdörffer
- 64'
Yellow
Ransford Yeboah Königsdörffer
- 66'
Yellow
T. Meyer
- 71'
Sub
Gerrit Holtmann → Mansour Ouro-Tagba
- 75'
Goal
Philipp Hofmann assist Jarne Steuckers
- 81'
Sub
Maximilian Wittek → L. Sawas
- 81'
Sub
Jarne Steuckers → L. Isbruch
- 84'
Sub
Paul Nebel → Benedict Hollerbach
- 84'
Sub
Danny da Costa → Sota Kawasaki
- 90+6'
Yellow
L. Isbruch
- 90+7'
Yellow
Sean Klaiber
Category leaders
- Key passesAnthony Caci3
- Duels wonMats Pannewig10/15
- DribblesMats Pannewig2/3
- Defensive actionsKacper Potulski6
- ShotsMats Pannewig3 (on target 0)
- Fouls wonKaishu Sano3
#Bochum#Mainz#DFB-Pokal#Timo Horn#Christian Rasmussen#Philipp Hofmann
This review was written by AI from match data (API-Football). FN Score and FN xPts are calculated by Fulltime Note using a published formula.