Borussia Dortmund vs Real Betis

4 November 2026 · Champions League · Matchday 4 · 2026/27 · Referee Serdar Gozubuyuk

Full time 2 – 1

Half-time: 0–0

  • Fábio Silva 49’
  • Konstantinos Karetsas 72’
  • Aitor Ruibal 67’

Match summary

Borussia Dortmund beat Real Betis 2-1. It was goalless at half-time.

Fábio Silva put Borussia Dortmund ahead in the 49th minute, Aitor Ruibal equalised in the 67th minute, and Konstantinos Karetsas won it in the 72nd minute.

The chances backed that up: Borussia Dortmund created 2.53 expected goals (xG) from 15 shots to Real Betis's 0.82 from 11.

Borussia Dortmund hosted Real Betis in the Champions League on matchday 4, edging the visitors with a final score of 2-1 after dominating the territory and shot volume. The hosts recorded 53 percent possession, 15 shots to 11, and 6 shots on target against the visitors 4, while generating an expected goals figure of 2.53 compared to 0.82. Both sides shared 8 yellow cards evenly with 4 apiece, alongside 15 fouls for Borussia Dortmund and 13 for Real Betis, across 457 passes completed by the home team and 418 by the away side.

Following a goalless first half that featured a substitution for Borussia Dortmund when Konstantinos Karetsas replaced Serhou Guirassy on 34 minutes, the action sparked into life immediately after the restart. Fábio Silva opened the scoring for Borussia Dortmund in the 49th minute with a right-footed shot. Real Betis equalised through Aitor Ruibal in the 67th minute before Konstantinos Karetsas restored the hosts lead in the 72nd minute. Yellow cards were shown throughout to Julian Ryerson, Natan, Ramy Bensebaini, Valentín Gómez, Joey Veerman, Jobe Bellingham, Angel Ortiz, and Isco.

Match stats

53% Possession 47%
15 Shots 11
6 Shots on target 4
2 Corners 5
86 Attacks 80
57 Dangerous attacks 41
457 Passes 418
81.2% Pass accuracy 81.1%
24 Tackles 14
15 Fouls 13
4 Yellow cards 4
4 Offsides 2

Key events

Borussia Dortmund Real Betis
Kick-off
Daniel SvenssonShot on target
21’
21’
Nelson DeossaShot on target
23’
Abdessamad EzzalzouliShot on target
38’
44’
NatanFoul
45+4’
Half-time0-0
Fábio SilvaRight foot shot1-0 (Borussia Dortmund)
49’
Jobe BellinghamShot on target
49’
Second half underway
Konstantinos KaretsasShot on target
51’
62’
64’
66’
Angel OrtizShot on target
67’
Aitor RuibalRight foot shot1-1 (Real Betis)
Jobe BellinghamShot on target
70’
Konstantinos KaretsasLeft foot shot2-1 (Borussia Dortmund)
72’
78’
79’
88’
90+3’
IscoFoul
Full-time2-1

How the chances added up

Running total of expected goals (xG) for each side through the match. xG rates each chance by how often similar shots are scored. A goal is marked where it was scored.

0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.53 0.82 49’ Fábio Silva (Borussia Dortmund), 1-0 49’ 67’ Aitor Ruibal (Real Betis), 1-1 67’ 72’ Konstantinos Karetsas (Borussia Dortmund), 2-1 72’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.53 0.82 49’ Fábio Silva (Borussia Dortmund), 1-0 Silva 49’ 67’ Aitor Ruibal (Real Betis), 1-1 Ruibal 67’ 72’ Konstantinos Karetsas (Borussia Dortmund), 2-1 Karetsas 72’
Borussia Dortmund 2.53 xGReal Betis 0.82 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Real Betis attacking Borussia Dortmund attacking 
21’ Daniel Svensson (Borussia Dortmund), open play, 0.63 xG, saved 49’ Fábio Silva (Borussia Dortmund), open play, 0.47 xG, goal 3’ Serhou Guirassy (Borussia Dortmund), open play, 0.33 xG, off target 67’ Aitor Ruibal (Real Betis), open play, 0.31 xG, goal 71’ Nico Schlotterbeck (Borussia Dortmund), set piece, 0.30 xG, off target 70’ Jobe Bellingham (Borussia Dortmund), open play, 0.28 xG, saved 49’ Jobe Bellingham (Borussia Dortmund), open play, 0.21 xG, saved 66’ Angel Ortiz (Real Betis), open play, 0.17 xG, saved 84’ Marc Roca (Real Betis), from a corner, 0.13 xG, off target 63’ Daniel Svensson (Borussia Dortmund), open play, 0.12 xG, off target 23’ Abdessamad Ezzalzouli (Real Betis), open play, 0.05 xG, saved 26’ Abdessamad Ezzalzouli (Real Betis), from a corner, 0.04 xG, off target 51’ Konstantinos Karetsas (Borussia Dortmund), open play, 0.04 xG, saved 72’ Konstantinos Karetsas (Borussia Dortmund), open play, 0.04 xG, goal 47’ Jobe Bellingham (Borussia Dortmund), open play, 0.03 xG, blocked 74’ Facundo Bernal (Real Betis), from a corner, 0.03 xG, off target 63’ Jobe Bellingham (Borussia Dortmund), open play, 0.03 xG, blocked 21’ Nelson Deossa (Real Betis), open play, 0.02 xG, saved 47’ Antony (Real Betis), open play, 0.02 xG, off target 73’ Aitor Ruibal (Real Betis), open play, 0.02 xG, blocked 89’ Joey Veerman (Borussia Dortmund), set piece, 0.02 xG, off target 15’ Felix Nmecha (Borussia Dortmund), open play, 0.01 xG, off target 33’ Nelson Deossa (Real Betis), open play, 0.02 xG, off target 46’ Konstantinos Karetsas (Borussia Dortmund), open play, 0.01 xG, off target 28’ Felix Nmecha (Borussia Dortmund), open play, 0.01 xG, blocked 87’ Nelson Deossa (Real Betis), open play, 0.01 xG, off target 21’ Daniel Svensson (Borussia Dortmund), open play, 0.63 xG, saved 49’ Fábio Silva (Borussia Dortmund), open play, 0.47 xG, goal 3’ Serhou Guirassy (Borussia Dortmund), open play, 0.33 xG, off target 67’ Aitor Ruibal (Real Betis), open play, 0.31 xG, goal 71’ Nico Schlotterbeck (Borussia Dortmund), set piece, 0.30 xG, off target 70’ Jobe Bellingham (Borussia Dortmund), open play, 0.28 xG, saved 49’ Jobe Bellingham (Borussia Dortmund), open play, 0.21 xG, saved 66’ Angel Ortiz (Real Betis), open play, 0.17 xG, saved 84’ Marc Roca (Real Betis), from a corner, 0.13 xG, off target 63’ Daniel Svensson (Borussia Dortmund), open play, 0.12 xG, off target 23’ Abdessamad Ezzalzouli (Real Betis), open play, 0.05 xG, saved 26’ Abdessamad Ezzalzouli (Real Betis), from a corner, 0.04 xG, off target 51’ Konstantinos Karetsas (Borussia Dortmund), open play, 0.04 xG, saved 72’ Konstantinos Karetsas (Borussia Dortmund), open play, 0.04 xG, goal 47’ Jobe Bellingham (Borussia Dortmund), open play, 0.03 xG, blocked 74’ Facundo Bernal (Real Betis), from a corner, 0.03 xG, off target 63’ Jobe Bellingham (Borussia Dortmund), open play, 0.03 xG, blocked 47’ Antony (Real Betis), open play, 0.02 xG, off target 73’ Aitor Ruibal (Real Betis), open play, 0.02 xG, blocked 89’ Joey Veerman (Borussia Dortmund), set piece, 0.02 xG, off target 21’ Nelson Deossa (Real Betis), open play, 0.02 xG, saved 33’ Nelson Deossa (Real Betis), open play, 0.02 xG, off target 15’ Felix Nmecha (Borussia Dortmund), open play, 0.01 xG, off target 46’ Konstantinos Karetsas (Borussia Dortmund), open play, 0.01 xG, off target 28’ Felix Nmecha (Borussia Dortmund), open play, 0.01 xG, blocked 87’ Nelson Deossa (Real Betis), open play, 0.01 xG, off target
Size shows xG Goal On target Off target or blocked

Hover or tap a shot for the player, minute and xG.

Lineups

Borussia Dortmund 3-4-2-1 Starting XI
Kobel
Anton
Schlotterbeck
Bensebaini 75’
Svensson
Veerman
Nmecha 75’
Ryerson 74’
Bellingham
Silva 90’
Guirassy 34’
Real Betis 4-2-3-1 Starting XI
Valles
Llorente
Natan
Gómez 70’
Ortiz
Bernal 78’
Ceballos 62’
Ezzalzouli
Deossa
Antony 62’
Parrott 78’

Player stats

Goalkeeper1 player
90′ 3 1 24 – – – – –
Defenders4 players
90′ 4 2 – 8 2 58 2 – – –
90′ 2 2 – 5 2 57 1 – – –
Ramy Bensebaini Taken off
75′ 1 – – 4 2 36 2 – –
Joane Gadou Came on as a substitute
15′ 1 – – 1 – 5 – – – –
Midfielders7 players
Julian Ryerson Taken off
74′ – – 27 5 – 1 – 6 1 2
90′ – – 71 1 – 3 – 6 2 2
Felix Nmecha Taken off
75′ – – 31 – – 3 – 7 – – –
90′ – – 28 – – 3 1 3 1 – –
90′ – – 48 2 – 5 1 11 2 4
Konstantinos Karetsas Came on as a substitute
56′ 1 – 23 2 – 1 – 5 2 2 –
Carney Chukwuemeka Came on as a substitute
15′ – – 4 – – – – – – – –
Forwards3 players
Fábio Silva Taken off
89′ 1 1 1 1 0.47 – 2 2 1 31 –
Serhou Guirassy Taken off
34′ – – 1 – 0.33 – 1 – – 10 –
Maximilian Beier Came on as a substitute
16′ – – – – – – – – – 4 –
Came on Taken off Sent off Red is the most in that position for the team

Every player who took the pitch, starters first and then substitutes. A dash means none. xG and xA are expected goals and assists.

Form going into the game

Last five Champions League games before this one, oldest first. Select one to open it.

Previous and next meeting

Shots, expected goals, timeline, lineups, team and player statistics from Bzzoiro Sports Data (sports.bzzoiro.com). Results from Bzzoiro Sports Data.