Bundesliga · Matchweek 4
HT 0:0
Maximilian Beier 70'
Sat, 19 Sept 2026, 17:30 (UK) · MHPArena, Stuttgart
VfB Stuttgart 14th · 3 pts|Borussia Dortmund 3rd → 1st · 12 pts

Dortmund managed only two shots on target, yet Maximilian Beier's 70th-minute goal and five Gregor Kobel saves lifted them to the top.

Player of the matchMaximilian Mittelstädt8.0Decisive moment70' Maximilian Beier+1.3

Stuttgart 0-1 Dortmund: Gregor Kobel's five saves hold firm

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
56%Possession44%
0.87Expected goals (xG)1.34
0.07xG per shot0.1
12Shots13
5Shots on target2
42%Shots on target %15%
8Shots in box10
544Passes432
87%Pass accuracy78%
6Corners2
1Saves5
9Fouls14
2Yellow cards5
4Offsides1

Compared with usual

VfB Stuttgart

5 matches this season, all competitions baseline
This matchAvg
Goals02.6
Conceded11.8
Shots1217.4
On target55.6
Shots faced1315.4
Possession56%58.6%
Passes544559.8
Pass accuracy87%82.3%
Corners66.4
Fouls99.6

Borussia Dortmund

5 matches this season, all competitions baseline
This matchAvg
Goals13.2
Conceded00.8
xG1.342
xG against0.870.98
Shots1319.8
On target27.2
Shots faced1210.2
xG per shot0.10.14
Possession44%56%
Passes432512.8
Pass accuracy78%85.8%
Corners27.8
Fouls1410.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.