Borussia Dortmund v 1899 Hoffenheim result
Team pages: Borussia Dortmund · 1899 Hoffenheim · Head-to-head
Borussia Dortmund 2–0 1899 Hoffenheim — Borussia Dortmund won this Bundesliga match.
What xG said
xG said little between the sides: Borussia Dortmund 1.10, 1899 Hoffenheim 1.42 in expected goals (per-shot expected goals for this match).
The result
Borussia Dortmund beat 1899 Hoffenheim 2–0 at SIGNAL IDUNA PARK in the Bundesliga on Sunday 7 December.
The goals
Borussia Dortmund led 1–0 at half-time. The goals — Borussia Dortmund: Julian Brandt (43’, assisted by Yan Couto) and Nico Schlotterbeck (60’, assisted by Felix Nmecha).
Discipline
Florian Badstubner, Germany showed two yellow cards — against 2.2 yellows a game across the last 13 matches refereed (this competition). The bookings — 1899 Hoffenheim: Bernardo (65’) and Albian Hajdari (68’).
What it changes
Borussia Dortmund stay third after this result (13 league matches played).
1899 Hoffenheim move down from fourth to fifth (13 league matches played).
Who stood out
By TACTIX Impact for this match, Nico Schlotterbeck (Borussia Dortmund) 7.7, Yan Couto (Borussia Dortmund) 6.5 and Felix Nmecha (Borussia Dortmund) 6.0 led the match.
Next up
Borussia Dortmund next travel to Sabah FA on 20 October 2026.
1899 Hoffenheim next host Lyon on 22 October 2026.
Written from the matches TACTIX holds for both sides; each figure names the games it is counted over.
Next for Borussia Dortmund: Sabah FA v Borussia Dortmund, Tuesday 20 October — the preview. Next for 1899 Hoffenheim: 1899 Hoffenheim v Lyon, Thursday 22 October — the preview.
The numbers
- Result: Borussia Dortmund 2–0 1899 Hoffenheim · Bundesliga
- Venue: SIGNAL IDUNA PARK · Dortmund
- Referee: Florian Badstubner, Germany
- Head-to-head (last 6): Borussia Dortmund 4 · draws 1 · 1899 Hoffenheim 1 · 3 goals/game
- Recent form: Borussia Dortmund 2W 2D 1L · 1899 Hoffenheim 3W 2D 0L
Borussia Dortmund 2–0 1899 Hoffenheim (Bundesliga): this fixture is settled. TACTIX’s pre-match coverage ran across every major market, and every graded call — wins and losses — is in the live track record (as of 30 July 2026). See the live track record →
Key stats
Per game, last 8 completed matches, to 2 December 2025. Over/under figures use standard thresholds, not bookmaker lines.
| Per game | Borussia Dortmund for / against | Line | 1899 Hoffenheim for / against |
|---|---|---|---|
| Goals scored | 1.63 for · 1.38 against n 8 Last 5 | 2.5standard | 2.13 for · 0.88 against n 8 Last 5 |
| Corners won | 4.75 for · 3.63 against n 8 Last 5 | 9.5standard | 6.25 for · 5.5 against n 8 Last 5 |
| Shots | 12.63 for · 12.25 against n 8 Last 5 | 19.5standard | 13.63 for · 13.88 against n 8 Last 5 |
| Shots on target | 3.88 for · 4.5 against n 8 Last 5 | 8.5standard | 4.5 for · 4 against n 8 Last 5 |
| Fouls committed | 12.25 for · 10.63 against n 8 Last 5 | 21.5standard | 15.5 for · 10.13 against n 8 Last 5 |
| Cards shown | 1.88 for · 1.88 against n 8 Last 5 | 3.5standard | 2.5 for · 1.75 against n 8 Last 5 |
Referee: Florian Badstubner, Germany — 2.15 yellow cards a game, 0.08 red cards, 22.38 fouls over 13 matches (1.15 to the home side, 1 to the away side).
Borussia Dortmund
| Player | Mins | Fouls committed 1+2+ | Fouls won 1+2+ | Likely duel |
|---|---|---|---|---|
| Fábio Silva n 8 | 25.3 | 2.2 | 0.9 | — |
| R. Bensebaïni n 8 | 60 | 2.1 | 1.3 | — |
| A. Anselmino n 8 | 49.9 | 2 | 0.7 | Bernardo |
| Yan Couto n 8 | 68.3 | 1.8 | 1.3 | W. Burger |
| S. Guirassy n 8 | 66.4 | 1.7 | 1.7 | T. Lemperle |
| Player | Mins | Shots 1+2+ | Shots on target 1+2+ |
|---|---|---|---|
| K. Adeyemi n 8 | 57 | 3 | 1.2 |
| S. Guirassy n 8 | 66.4 | 2.7 | 1.4 |
| Fábio Silva n 8 | 25.3 | 2.2 | 1.3 |
| F. Nmecha n 8 | 63.6 | 1.4 | 0.5 |
| C. Chukwuemeka n 8 | 45.5 | 1.2 | 0.2 |
| Player | Mins | Goals 1+2+ | Assists 1+2+ |
|---|---|---|---|
| Fábio Silva n 8 | 25.3 | 0.4 | 0.9 |
| M. Beier n 8 | 61 | 0.4 | 0.2 |
| K. Adeyemi n 8 | 57 | 0.6 | 0 |
| S. Guirassy n 8 | 66.4 | 0.5 | 0 |
| J. Ryerson n 8 | 76.6 | 0 | 0.4 |
| Player | Mins | Tackles 1+2+ |
|---|---|---|
| Yan Couto n 8 | 68.3 | 2.8 |
| D. Svensson n 8 | 72.6 | 2.6 |
| R. Bensebaïni n 8 | 60 | 2.6 |
| W. Anton n 8 | 89.3 | 2.3 |
| E. Can n 8 | 43.3 | 2.1 |
| Player | Mins | Saves 2+3+ |
|---|---|---|
| G. Kobel n 8 | 93.8 | 3 |
1899 Hoffenheim
| Player | Mins | Fouls committed 1+2+ | Fouls won 1+2+ | Likely duel |
|---|---|---|---|---|
| W. Burger n 8 | 82 | 2.9 | 0.3 | Yan Couto |
| T. Lemperle n 8 | 72.5 | 2.8 | 0.2 | S. Guirassy |
| Max Moerstedt n 8 | 20 | 2.8 | 0.6 | — |
| O. Kabak n 8 | 32.8 | 2.1 | 0 | — |
| Bernardo n 8 | 91 | 1.9 | 0.9 | A. Anselmino |
| Player | Mins | Shots 1+2+ | Shots on target 1+2+ |
|---|---|---|---|
| G. Prömel n 8 | 59 | 2.5 | 1.1 |
| M. Damar n 8 | 30.5 | 2.2 | 2.2 |
| F. Asllani n 8 | 64.5 | 2.1 | 0.9 |
| T. Lemperle n 8 | 72.5 | 1.9 | 0.8 |
| I. Bebou n 8 | 17.4 | 1.9 | 0.6 |
| Player | Mins | Goals 1+2+ | Assists 1+2+ |
|---|---|---|---|
| G. Prömel n 8 | 59 | 0.8 | 0.2 |
| W. Burger n 8 | 82 | 0.4 | 0.4 |
| A. Kramarić n 8 | 66.1 | 0.3 | 0.5 |
| V. Coufal n 8 | 90 | 0.1 | 0.5 |
| B. Touré n 8 | 78.5 | 0.3 | 0.3 |
| Player | Mins | Tackles 1+2+ |
|---|---|---|
| A. Prass n 8 | 38.5 | 3.2 |
| Bernardo n 8 | 91 | 2.7 |
| W. Burger n 8 | 82 | 2.6 |
| K. Akpoguma n 8 | 42 | 2.4 |
| O. Kabak n 8 | 32.8 | 2.4 |
| Player | Mins | Saves 2+3+ |
|---|---|---|
| O. Baumann n 8 | 93.8 | 2.4 |
The day’s free picks, by email
Every morning at 07:30 UK: the model’s free picks, each with its confidence tier and that tier’s settled record, misses included. No tips, no guarantees, one click to leave.
Match statistics & details
| Borussia Dortmund | 1899 Hoffenheim | |
|---|---|---|
| 43% | Possession | 57% |
| 1.26 | Expected goals (xG) | 1.14 |
| 8 | Shots | 11 |
| 4 | Shots on target | 3 |
| 2 | Shots off target | 7 |
| 2 | Blocked shots | 1 |
| 6 | Shots inside the box | 5 |
| 7 | Corners | 5 |
| 0 | Offsides | 1 |
| 7 | Fouls | 9 |
| 0 | Yellow cards | 2 |
| 0 | Red cards | 0 |
| 3 | Saves | 2 |
| 380 | Passes | 507 |
| 77% | Pass accuracy | 83% |
Borussia Dortmund player stats
| Player | Min | G | A | Sh | SoT | KP | Tkl | Cards | Rating |
|---|---|---|---|---|---|---|---|---|---|
| G. Kobel | 90 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7.6 |
| A. Anselmino | 90 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 7 |
| W. Anton | 90 | 0 | 0 | 1 | 0 | 0 | 2 | 0 | 7.2 |
| N. Schlotterbeck | 90 | 1 | 0 | 1 | 1 | 0 | 4 | 0 | 8.9 |
| M. Sabitzer | 90 | 0 | 0 | 0 | 0 | 1 | 2 | 0 | 6.9 |
| D. Svensson | 90 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 6.6 |
| Yan Couto | 89 | 0 | 1 | 0 | 0 | 2 | 2 | 0 | 7.9 |
| F. Nmecha | 89 | 0 | 1 | 0 | 0 | 2 | 2 | 0 | 6.9 |
| S. Guirassy | 89 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 6.7 |
| K. Adeyemi | 80 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.3 |
| J. Brandt | 80 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | 7.5 |
| C. Chukwuemeka sub | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.9 |
| M. Beier sub | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.7 |
| J. Ryerson sub | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – |
| J. Bellingham sub | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – |
| Fábio Silva sub | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – |
1899 Hoffenheim player stats
| Player | Min | G | A | Sh | SoT | KP | Tkl | Cards | Rating |
|---|---|---|---|---|---|---|---|---|---|
| O. Baumann | 90 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.7 |
| V. Coufal | 90 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 7.3 |
| R. Hranáč | 90 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 6 |
| A. Hajdari | 90 | 0 | 0 | 0 | 0 | 0 | 4 | Y | 6.6 |
| Bernardo | 90 | 0 | 0 | 0 | 0 | 0 | 1 | Y | 5.6 |
| L. Avdullahu | 90 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 7.2 |
| W. Burger | 80 | 0 | 0 | 2 | 1 | 0 | 3 | 0 | 7.2 |
| B. Touré | 80 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 6.9 |
| G. Prömel | 73 | 0 | 0 | 1 | 0 | 0 | 2 | 0 | 6.3 |
| T. Lemperle | 73 | 0 | 0 | 2 | 0 | 2 | 1 | 0 | 6.5 |
| F. Asllani | 62 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 6.2 |
| A. Kramarić sub | 28 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 6.2 |
| U. Tohumcu sub | 17 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.3 |
| I. Bebou sub | 17 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 6.3 |
| A. Hložek sub | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.5 |
| Max Moerstedt sub | 10 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 6.7 |
Sh = shots, SoT = shots on target, KP = key passes, Tkl = tackles; – = not recorded for that player. Rating is the data provider’s.
Form, head-to-head & standings
The numbers behind Borussia Dortmund v 1899 Hoffenheim — recent results, past meetings and where each side sits. (TACTIX’s model forecast is in the projections below.)
- 2025-04-26 1899 Hoffenheim 2–3 Borussia Dortmund
- 2024-12-15 Borussia Dortmund 1–1 1899 Hoffenheim
- 2024-02-25 Borussia Dortmund 2–3 1899 Hoffenheim
- 2023-11-01 Borussia Dortmund 1–0 1899 Hoffenheim
- 2023-09-29 1899 Hoffenheim 1–3 Borussia Dortmund
- 2023-02-25 1899 Hoffenheim 0–1 Borussia Dortmund
Shot map and expected goals
Borussia Dortmund 1.10 xG from 8 shots, 1899 Hoffenheim 1.42 from 11. Every mark is one shot, placed where it was taken and sized by the chance it had of becoming a goal. Filled marks with a white ring are goals.
| Team | Shots | Goals | xG |
|---|---|---|---|
| Borussia Dortmund | 8 | 2 | 1.10 |
| 1899 Hoffenheim | 11 | 0 | 1.42 |
Shot locations and expected-goals values from per-shot data. Per-shot tables, situation and shot-type breakdowns are part of TACTIX Pro.
The full post-match picture
Pro members see this match shot by shot — every attempt with its expected-goals value, the situation and shot-type breakdowns, the xG timeline, and how the model’s pre-match probabilities compared with what happened. Plus every market the model graded for this fixture.
Try Pro for £1.00 — the full match analysis£1.00 for 14 days, then £9.99/month. Cancel in the trial and pay nothing more.
Frequently asked questions
- What is the head-to-head record between Borussia Dortmund and 1899 Hoffenheim?
- In their last 6 meetings, Borussia Dortmund won 4, 1899 Hoffenheim won 1 and there was 1 draw, averaging 3 goals per game.
- What is the recent form of Borussia Dortmund and 1899 Hoffenheim?
- Recent form — Borussia Dortmund 2W 2D 1L; 1899 Hoffenheim 3W 2D 0L.
Today’s boards
Every fixture kicking off in the UK day, and the fixtures where the free pick leads with each market.
This page is generated from TACTIX’s match data by our software and checked automatically; data as of . How it works → · Report an error
How our model works · Live track record · Predictions are model output, not betting advice.