Stuttgart 0-1 Dortmund: Gregor Kobel's five saves hold firm
AI-written review based on match data · How we make it
Key numbers
- Two shots on target vs a 7.2 five-match average
- xG 0.87 v 1.34: better chances for Dortmund
- Kobel made 5 saves to protect the clean sheet
A tight match broken in the 70th minute
It was goalless at the break and stayed that way deep into the second half. Then Jobe Bellingham's pass found Maximilian Beier, and that 70th-minute goal proved the winner. Dortmund spent about 70 minutes level and about 20 ahead, and moved from third to first on 12 points.
Dortmund won without their usual volume
Dortmund's two shots on target were far short of their average of 7.2 across five matches this season. Yet their xG of 1.34 was higher than Stuttgart's, and so was their xG per shot. They shot less than usual, but the chances they took appear to have been better placed.
Stuttgart found the keeper in the way
Stuttgart did get five efforts on target, but every one was saved by Kobel. Their xG per shot was only 0.07, which suggests plenty of attempts without much danger. A side averaging 2.6 goals across five matches this season left with none.
A substitute opened the match up
Bellingham came on in the 62nd minute and set up the goal eight minutes later. Moving the match from 0-0 to 1-0, it was worth +1.3 FN xPts. Dortmund then held on to the lead while collecting yellow cards in the 81st and 82nd minutes, and did not concede.
Player of the match
Maximilian Mittelstädt 8.0Dominant
He made three key passes, won three of four dribbles and eight of nine duels.
Mittelstädt earned his FN Score from both ends of the pitch. His three key passes were the most of any player in the match, and he added three interceptions. Stuttgart never turned that creativity into a goal, so his performance went unrewarded on the scoreboard.
Game state
0-1
VfB Stuttgart ahead 0 min · level 70 min · Borussia Dortmund ahead 20 min
- Jobe Bellingham — off the bench 28 min · 0G 1A
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.
70'
Maximilian Beier
Goal · scorer +0.9 · assist Jobe Bellingham +0.4
+1.3
VfB Stuttgart
Expected (last two seasons) 1.5Own moments 0.0Opponent moments −0.9Time effect −0.6→ League points won 0
Borussia Dortmund
Expected (last two seasons) 1.2Own moments +1.3Opponent moments 0.0Time effect +0.5→ League points won 3
Expected points don't add up to a fixed total (a draw is 1 + 1), so an opponent's moment isn't simply the mirror of your loss. "Time effect" is the change as the clock runs down on a lead or a chase, and isn't credited to any player.
How FN Score and FN xPts work →
Match stats
VfB StuttgartBorussia Dortmund
0.87Expected goals (xG)1.34
Compared with usual
VfB Stuttgart
5 matches this season, all competitions baseline
| This match | Avg | |
|---|
| Goals | 0 | 2.6 | |
| Conceded | 1 | 1.8 | |
| Shots | 12 | 17.4 | |
| On target | 5 | 5.6 | |
| Shots faced | 13 | 15.4 | |
| Possession | 56% | 58.6% | |
| Passes | 544 | 559.8 | |
| Pass accuracy | 87% | 82.3% | |
| Corners | 6 | 6.4 | |
| Fouls | 9 | 9.6 | |
Borussia Dortmund
5 matches this season, all competitions baseline
| This match | Avg | |
|---|
| Goals | 1 | 3.2 | |
| Conceded | 0 | 0.8 | |
| xG | 1.34 | 2 | |
| xG against | 0.87 | 0.98 | |
| Shots | 13 | 19.8 | |
| On target | 2 | 7.2 | |
| Shots faced | 12 | 10.2 | |
| xG per shot | 0.1 | 0.14 | |
| Possession | 44% | 56% | |
| Passes | 432 | 512.8 | |
| Pass accuracy | 78% | 85.8% | |
| Corners | 2 | 7.8 | |
| Fouls | 14 | 10.6 | |
Timeline
- 13'
Yellow
Ermedin Demirović
- 17'
Yellow
Angelo Stiller
- 32'
Yellow
Nico Schlotterbeck
- 46'
Yellow
Joey Veerman
- 57'
Yellow
Joane Gadou
- 62'
Sub
Joey Veerman → Jobe Bellingham
- 62'
Sub
Ethan Nwaneri → Konstantinos Karetsas
- 64'
Sub
Chris Führich → Jamie Leweling
- 64'
Sub
Deniz Undav → Dženan Pejčinović
- 70'
Goal
Maximilian Beier league goal #1 assist Jobe Bellingham
- 74'
Sub
Serhou Guirassy → Fábio Silva
- 81'
Yellow
Jobe Bellingham
- 82'
Yellow
Julian Ryerson
- 82'
Sub
Julian Ryerson → Ramy Bensebaini
- 82'
Sub
Maximilian Beier → Marcel Sabitzer
- 84'
Sub
Grischa Prömel → Nikolas Nartey
- 84'
Sub
Bilal El Khannouss → Leo Sauer
Category leaders
- Key passesMaximilian Mittelstädt3
- Duels wonJeff Chabot10/17
- DribblesMaximilian Mittelstädt3/4
- Defensive actionsFelix Nmecha7
- ShotsBilal El Khannouss3 (on target 1)
- Fouls wonMaximilian Mittelstädt4
#Bundesliga#VfB Stuttgart#Borussia Dortmund#Maximilian Mittelstädt#Maximilian Beier#Gregor Kobel
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.