UEFA Champions League 2025 20 Jan 2026

Tottenham vs Borussia Dortmund

2 – 0 2 – 0 0 – 0

(HT: 2–0)

FT

21:00

Tottenham Hotspur Stadium (London) · Ref: G. Nyberg

← Back to Matches
Score Summary
Full Time 2 – 0
Half Time 2 – 0
Key Stats
Ball Possession 54% – 46%
Blocked Shots 4 – 1
Corner Kicks 4 – 2
Fouls 14 – 12
Goalkeeper Saves 1 – 3
Offsides 1 – 0
Elo (before match)
Rating 1493 – 1490
Expected win probability 50.4% – 49.6%
xPi (before match)
Rating -0.05 – 0.23
Expected win probability 43.6% – 35.8%
Top Performers
Top Rated
Wilson Odobert
Tottenham
8.6 rating (90 min)
Most Clinical
Cristian Romero
Tottenham
1 goals
Best Creator
Wilson Odobert
Tottenham
4 key passes, 2 assists
Defensive Leader
Pedro Porro
Tottenham
2 tackles + 5 interceptions
Standings (Top 6) View Full Standings
#TeamPtsForm
1 Arsenal 24 W W W W W
2 Bayern München 21 W W W L W
3 Liverpool 18 W W W L W
4 Tottenham 17 W W W L W
5 Barcelona 16 W W W L D
6 Chelsea 16 W W L W D
7 Sporting CP 16 W W L W D
8 Manchester City 16 W L W L W
9 Real Madrid 15 L W L W L
10 Inter 15 W L L L W
11 Paris Saint Germain 14 D L D W L
12 Newcastle 14 D W D L W
13 Juventus 13 D W W W D
14 Atletico Madrid 13 L D W W W
15 Atalanta 13 L L W W W
16 Bayer Leverkusen 12 W L D W W
17 Borussia Dortmund 11 L L D W L
18 Olympiakos Piraeus 11 W W W L D
19 Club Brugge KV 10 W W L L D
20 Galatasaray 10 L D L L W
21 Monaco 10 D L W D W
22 Qarabag 10 L W L L D
23 Bodo/Glimt 9 W W D L L
24 Benfica 9 W L W W L
25 Marseille 9 L L W W L
26 Pafos 9 W L L D W
27 Union St. Gilloise 9 W L L W L
28 PSV Eindhoven 8 L L L W D
29 Athletic Club 8 L W D D L
30 Napoli 8 L D L W D
31 FC Copenhagen 8 L D W W L
32 Ajax 6 L W W L L
33 Eintracht Frankfurt 4 L L L L D
34 Slavia Praha 3 L L L D L
35 Villarreal 1 L L L L L
36 Kairat Almaty 1 L L L L L
{# ================================================================ Lineup Section — SofaScore/Flashscore style shared pitch Context: pitch_lineups, lineups_data, match, substitutions, substitutions_map, debug_mode, debug_lineups ================================================================ #}
👤 Team Lineups (Pitch View)
HOME LEN: 11 AWAY LEN: 11 | First home: top=6.0% left=50.0%
🔄 Substitutions
Match Substitutions
46'
Borussia Dortmund
46'
Borussia Dortmund
62'
Tottenham
64'
Borussia Dortmund
64'
Borussia Dortmund
70'
Tottenham
76'
Borussia Dortmund
Match Statistics (Full Time)
Statistic Tottenham Borussia Dortmund
Ball Possession 54% 46%
Blocked Shots 4 1
Corner Kicks 4 2
Fouls 14 12
Goalkeeper Saves 1 3
Offsides 1 0
Passes Accurate 398 319
Red Cards 0 1
Shots Insidebox 15 3
Shots Off Goal 7 4
Shots On Goal 5 1
Shots Outsidebox 1 3
Total Passes 460 401
Total Shots 16 6
Yellow Cards 1 1
expected_goals 1.97 0.38
goals_prevented 0 0
Passes % 87% 80%
Team Aggregates (Season)
Tottenham
Possession % {{ team_aggregates_home.avg_possession }}%
Pass Accuracy % {{ team_aggregates_home.pass_accuracy }}%
Shot Accuracy % {{ team_aggregates_home.shot_accuracy }}%
Goals (avg) 2.11
xG (avg) 1.71{% else %}N/A
Borussia Dortmund
Possession % {{ team_aggregates_away.avg_possession }}%
Pass Accuracy % {{ team_aggregates_away.pass_accuracy }}%
Shot Accuracy % {{ team_aggregates_away.shot_accuracy }}%
Goals (avg) 2.2
xG (avg) 1.66{% else %}N/A
Tottenham — Player Statistics
Player cards.red cards.yellow dribbles.attempts dribbles.past dribbles.success duels.total duels.won fouls.committed fouls.drawn games.captain games.minutes games.number games.position games.rating games.substitute goals.assists goals.conceded goals.saves goals.total offsides passes.accuracy passes.key passes.total penalty.commited penalty.missed penalty.saved penalty.scored penalty.won shots.on shots.total tackles.blocks tackles.interceptions tackles.total
Antonín Kinský 👤 Antonín Kinský 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 31 G N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Archie Gray 👤 Archie Gray 0 1 2 N/A 1 9 5 1 N/A False 90 14 M 6.9 False 0 0 N/A N/A N/A 39 N/A 42 N/A 0 N/A 0 N/A N/A N/A N/A 1 3
Brandon Austin 👤 Brandon Austin 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 40 G N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Callum Olusesi 👤 Callum Olusesi 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 52 M N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Cristian Romero 👤 Cristian Romero 0 0 N/A N/A N/A 9 6 1 1 True 90 17 D 8.3 False 0 0 N/A 1 N/A 52 1 56 N/A 0 N/A 0 N/A 1 2 N/A N/A 1
Dane Scarlett 👤 Dane Scarlett 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 44 F N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Destiny Udogie 👤 Destiny Udogie 0 0 N/A N/A N/A 9 6 2 2 False 90 13 D 7.7 False 0 0 N/A N/A N/A 59 1 65 N/A 0 N/A 0 N/A N/A N/A N/A 1 4
Djed Spence 👤 Djed Spence 0 0 7 1 3 14 7 1 1 False 90 24 M 6.9 False 0 0 N/A N/A N/A 26 2 31 N/A 0 N/A 0 N/A N/A 1 N/A N/A 3
Dominic Solanke 👤 Dominic Solanke 0 0 N/A N/A N/A 7 2 2 N/A False 70 19 F 7.3 False 0 0 N/A 1 1 9 1 10 N/A 0 N/A 0 N/A 1 2 N/A 1 1
Guglielmo Vicario 👤 Guglielmo Vicario 0 0 N/A N/A N/A 1 1 N/A N/A False 90 1 G 7.3 False 0 0 1 N/A N/A 21 N/A 28 N/A 0 0 0 N/A N/A N/A N/A N/A N/A
James Rowswell 👤 James Rowswell 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 76 D N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Jun'ai Byfield 👤 Jun'ai Byfield 0 0 N/A 3 N/A 9 4 1 N/A False 28 67 D 6.6 True 0 0 N/A N/A N/A 9 N/A 10 N/A 0 N/A 0 N/A N/A N/A N/A N/A 2
Kevin Danso 👤 Kevin Danso 0 0 N/A 1 N/A 8 4 2 1 False 90 4 D 7 False 0 0 N/A N/A N/A 48 1 59 N/A 0 N/A 0 N/A N/A N/A 1 N/A N/A
Luca Williams-Barnett 👤 Luca Williams-Barnett 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 68 M N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Lucas Bergvall 👤 Lucas Bergvall 0 0 1 N/A N/A 8 4 2 2 False 62 15 M 6.6 False 0 0 N/A N/A N/A 25 1 28 N/A 0 N/A 0 N/A N/A 1 N/A 2 1
Malachi Hardy 👤 Malachi Hardy 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 66 D N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Pedro Porro 👤 Pedro Porro 0 0 1 3 N/A 9 3 N/A 1 False 90 23 D 7.2 False 0 0 N/A N/A N/A 44 2 55 N/A 0 N/A 0 N/A N/A N/A N/A 5 2
Randal Kolo Muani 👤 Randal Kolo Muani 0 0 1 N/A N/A 2 N/A N/A N/A False 20 39 F 6.5 True 0 0 N/A N/A N/A 1 N/A 2 N/A 0 N/A 0 N/A 1 1 N/A N/A N/A
Tynan Thompson 👤 Tynan Thompson 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 54 F N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Wilson Odobert 👤 Wilson Odobert 0 0 7 N/A 4 12 7 2 1 False 90 28 M 8.6 False 2 0 N/A N/A N/A 28 4 29 N/A 0 N/A 0 N/A 1 1 N/A 1 2
Xavi Simons 👤 Xavi Simons 0 0 2 1 1 11 6 N/A 2 False 90 7 M 7.5 False 0 0 N/A N/A N/A 37 1 45 N/A 0 N/A 0 N/A 1 4 N/A N/A 3
Yusuf Akhamrich 👤 Yusuf Akhamrich 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 70 F N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Borussia Dortmund — Player Statistics
Player cards.red cards.yellow dribbles.attempts dribbles.past dribbles.success duels.total duels.won fouls.committed fouls.drawn games.captain games.minutes games.number games.position games.rating games.substitute goals.assists goals.conceded goals.saves goals.total offsides passes.accuracy passes.key passes.total penalty.commited penalty.missed penalty.saved penalty.scored penalty.won shots.on shots.total tackles.blocks tackles.interceptions tackles.total
Aarón Anselmino 👤 Aarón Anselmino 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 28 D N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Alexander Meyer 👤 Alexander Meyer 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 33 G N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Carney Chukwuemeka 👤 Carney Chukwuemeka 0 0 3 N/A 2 3 2 N/A N/A False 26 17 M 6.6 True 0 0 N/A N/A N/A 9 N/A 12 N/A 0 N/A 0 N/A N/A 1 N/A 1 N/A
Daniel Svensson 👤 Daniel Svensson 1 0 N/A N/A N/A 3 2 2 N/A False 26 24 M 4.6 False 0 0 N/A N/A N/A 6 N/A 8 N/A 0 N/A 0 N/A N/A N/A 1 1 2
Emre Can 👤 Emre Can 0 0 N/A 1 N/A 4 1 1 N/A False 45 23 M 6.9 True 0 0 N/A N/A N/A 30 N/A 33 N/A 0 N/A 0 N/A N/A N/A N/A 1 1
Felix Nmecha 👤 Felix Nmecha 0 0 1 N/A N/A 7 5 1 2 False 64 8 M 6.3 False 0 0 N/A N/A N/A 17 N/A 24 N/A 0 N/A 0 N/A N/A N/A N/A N/A 2
Filippo Mané 👤 Filippo Mané 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 39 D N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Fábio Silva 👤 Fábio Silva 0 0 2 N/A 1 10 5 1 3 False 26 21 F 6.7 True 0 0 N/A N/A N/A 9 N/A 11 N/A 0 N/A 0 N/A N/A N/A N/A N/A 1
Gregor Kobel 👤 Gregor Kobel 0 0 N/A N/A N/A 1 1 N/A N/A False 90 1 G 7.2 False 0 2 3 N/A N/A 15 N/A 27 N/A 0 0 0 N/A N/A N/A N/A N/A N/A
Jobe Bellingham 👤 Jobe Bellingham 0 0 4 N/A 2 14 8 1 2 False 90 7 M 6.9 False 0 0 N/A N/A N/A 29 N/A 33 N/A 0 N/A 0 N/A N/A N/A 1 1 3
Julian Brandt 👤 Julian Brandt 0 0 N/A N/A N/A 1 N/A N/A N/A False 45 10 F 6.5 False 0 0 N/A N/A N/A 12 N/A 16 N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Julian Ryerson 👤 Julian Ryerson 0 1 1 1 1 7 4 N/A 1 False 45 26 D 7.2 True 0 0 N/A N/A N/A 10 3 13 N/A 0 N/A 0 N/A N/A 1 N/A N/A 2
Julien Duranville 👤 Julien Duranville 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 16 F N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Karim Adeyemi 👤 Karim Adeyemi 0 0 6 N/A 2 11 4 2 2 False 64 27 F 6.5 False 0 0 N/A N/A N/A 9 N/A 12 N/A 0 N/A 0 N/A N/A N/A N/A 1 N/A
Maximilian Beier 👤 Maximilian Beier 0 0 2 N/A 1 4 2 N/A N/A False 14 14 F 6.5 True 0 0 N/A N/A N/A 7 N/A 11 N/A 0 N/A 0 N/A N/A N/A N/A 2 N/A
Nico Schlotterbeck 👤 Nico Schlotterbeck 0 0 N/A 1 N/A 15 12 1 2 True 90 4 D 7.5 False 0 0 N/A N/A N/A 59 N/A 72 N/A 0 N/A 0 N/A 1 2 N/A 1 6
Niklas Süle 👤 Niklas Süle 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 25 D N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Ramy Bensebaini 👤 Ramy Bensebaini 0 0 N/A 2 N/A 7 2 N/A 1 False 90 5 D 6.2 False 0 0 N/A N/A N/A 37 N/A 46 N/A 0 N/A 0 N/A N/A N/A 2 1 1
Serhou Guirassy 👤 Serhou Guirassy 0 0 N/A N/A N/A 6 N/A 1 N/A False 45 9 F 6.3 False 0 0 N/A N/A N/A 8 N/A 9 N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Silas Ostrzinski 👤 Silas Ostrzinski 0 0 N/A N/A N/A N/A N/A N/A N/A False N/A 31 G N/A True N/A 0 N/A N/A N/A N/A N/A N/A N/A 0 N/A 0 N/A N/A N/A N/A N/A N/A
Waldemar Anton 👤 Waldemar Anton 0 0 1 2 N/A 8 1 2 N/A False 90 3 D 5.7 False 0 0 N/A N/A N/A 46 N/A 55 N/A 0 N/A 0 N/A N/A 1 N/A 2 N/A
Yan Couto 👤 Yan Couto 0 0 N/A 2 N/A 7 4 N/A N/A False 76 2 M 6.9 False 0 0 N/A N/A N/A 16 N/A 19 N/A 0 N/A 0 N/A N/A N/A N/A 3 4
Match Events
C. Romero (Normal Goal)
14'
26'
🟥 Daniel Svensson (Red Card)
D. Solanke (Normal Goal)
37'
46'
🔄 S. Guirassy → Substitution 1
46'
🔄 J. Brandt → Substitution 2
🔄 L. Bergvall → Substitution 1
62'
64'
🔄 F. Nmecha → Substitution 3
64'
🔄 K. Adeyemi → Substitution 4
🔄 D. Solanke → Substitution 2
70'
76'
🔄 Y. Couto → Substitution 5
🟨 Archie Gray (Yellow Card)
86'
86'
🟨 Julian Ryerson (Yellow Card)
Substitutions
46'
Borussia Dortmund
46'
Borussia Dortmund
62'
Tottenham
64'
Borussia Dortmund
64'
Borussia Dortmund
70'
Tottenham
76'
Borussia Dortmund
League Standings View Standings

Teams in this match: Tottenham and Borussia Dortmund

#TeamMPWDLGFGAGDPtsForm
1 Arsenal 8 8 0 0 23 4 19 24 W W W W W
2 Bayern München 8 7 0 1 22 8 14 21 W W W L W
3 Liverpool 8 6 0 2 20 8 12 18 W W W L W
4 Tottenham 8 5 2 1 17 7 10 17 W W W L W
5 Barcelona 8 5 1 2 22 14 8 16 W W W L D
6 Chelsea 8 5 1 2 17 10 7 16 W W L W D
7 Sporting CP 8 5 1 2 17 11 6 16 W W L W D
8 Manchester City 8 5 1 2 15 9 6 16 W L W L W
9 Real Madrid 8 5 0 3 21 12 9 15 L W L W L
10 Inter 8 5 0 3 15 7 8 15 W L L L W
11 Paris Saint Germain 8 4 2 2 21 11 10 14 D L D W L
12 Newcastle 8 4 2 2 17 7 10 14 D W D L W
13 Juventus 8 3 4 1 14 10 4 13 D W W W D
14 Atletico Madrid 8 4 1 3 17 15 2 13 L D W W W
15 Atalanta 8 4 1 3 10 10 0 13 L L W W W
16 Bayer Leverkusen 8 3 3 2 13 14 -1 12 W L D W W
17 Borussia Dortmund 8 3 2 3 19 17 2 11 L L D W L
18 Olympiakos Piraeus 8 3 2 3 10 14 -4 11 W W W L D
19 Club Brugge KV 8 3 1 4 15 17 -2 10 W W L L D
20 Galatasaray 8 3 1 4 9 11 -2 10 L D L L W
21 Monaco 8 2 4 2 8 14 -6 10 D L W D W
22 Qarabag 8 3 1 4 13 21 -8 10 L W L L D
23 Bodo/Glimt 8 2 3 3 14 15 -1 9 W W D L L
24 Benfica 8 3 0 5 10 12 -2 9 W L W W L
25 Marseille 8 3 0 5 11 14 -3 9 L L W W L
26 Pafos 8 2 3 3 8 11 -3 9 W L L D W
27 Union St. Gilloise 8 3 0 5 8 17 -9 9 W L L W L
28 PSV Eindhoven 8 2 2 4 16 16 0 8 L L L W D
29 Athletic Club 8 2 2 4 9 14 -5 8 L W D D L
30 Napoli 8 2 2 4 9 15 -6 8 L D L W D
31 FC Copenhagen 8 2 2 4 12 21 -9 8 L D W W L
32 Ajax 8 2 0 6 8 21 -13 6 L W W L L
33 Eintracht Frankfurt 8 1 1 6 10 21 -11 4 L L L L D
34 Slavia Praha 8 0 3 5 5 19 -14 3 L L L D L
35 Villarreal 8 0 1 7 5 18 -13 1 L L L L L
36 Kairat Almaty 8 0 1 7 7 22 -15 1 L L L L L

Predictions provided by Football API

All data below is returned exactly as from GET /predictions?fixture={id}. Keys are not renamed or translated.

UEFA Champions League World · Season 2025

Teams

Tottenham
Last 5: Form 53% · Att 71% · Def 59%
Goals: 12 for · 7 against
W3 D2 L1 · WDDWLW
Borussia Dortmund
Last 5: Form 67% · Att 88% · Def 47%
Goals: 15 for · 9 against
W3 D2 L1 · DWWLWD

Predictions

Tottenham 45%
Draw 45%
Borussia Dortmund 10%
Tottenham (Win or draw)

Combo Double chance : Tottenham or draw and +1.5 goals

Goals: Tottenham -4.5 · Borussia Dortmund -3.5
Win or Draw

Comparison

Attack
44% – 56%
Defense
56% – 44%
Head to Head
80% – 20%
Form
44% – 56%
Goals
71% – 29%
Total
59.0% – 41.0%
Poisson
100% – 0%

Head to Head

Last 6 matches: Home wins: 3, Away wins: 3, Draws: 0

05 Mar 2019 · UEFA Champions League 2018
Borussia Dortmund 0 – 1 Tottenham
Signal Iduna Park
13 Feb 2019 · UEFA Champions League 2018
Tottenham 3 – 0 Borussia Dortmund
Wembley Stadium
21 Nov 2017 · UEFA Champions League 2017
Borussia Dortmund 1 – 2 Tottenham
Signal Iduna Park
13 Sep 2017 · UEFA Champions League 2017
Tottenham 3 – 1 Borussia Dortmund
Wembley Stadium
17 Mar 2016 · UEFA Europa League 2015
Tottenham 1 – 2 Borussia Dortmund
White Hart Lane
10 Mar 2016 · UEFA Europa League 2015
Borussia Dortmund 3 – 0 Tottenham
Signal-Iduna-Park
CatBoost Prediction

Model not available yet. Run train_catboost to train a model.

No Predictions Available

Predictions for this match have not been generated yet. Check back later or sync match data.

Analysis
Analysis Coming Soon

xG comparison, momentum graph, and match rating overview will be available in a future update.