Kaiserslautern vs Bochum

17 October 2026 · 2. Bundesliga · 2026/27 · Referee Wolfgang Haslberger

Full time 2 – 0

Half-time: 1–0

  • Miloš Luković 31’
  • Semih Şahin 75’ (pen)

Match summary

Kaiserslautern beat Bochum 2-0. Kaiserslautern led 1-0 at half-time.

Miloš Luković put Kaiserslautern ahead in the 31st minute and Semih Şahin made it 2-0 from the penalty spot in the 75th minute.

The chances backed that up: Kaiserslautern created 2.34 expected goals (xG) from 16 shots to Bochum's 0.59 from 8.

Match stats

46% Possession 54%
16 Shots 8
3 Shots on target 2
6 Corners 4
72 Attacks 94
31 Dangerous attacks 44
375 Passes 445
73.1% Pass accuracy 81.6%
16 Tackles 9
8 Fouls 11
1 Yellow cards 3
1 Offsides 1

Key events

Kaiserslautern Bochum
Kick-off
Corner
7’
15’
Corner
Corner
16’
23’
Christian RasmussenShot on target
Miloš LukovićRight foot shot1-0 (Kaiserslautern)
31’
42’
Corner
45’
Corner
Half-time1-0
Corner
49’
Second half underway
50’
Corner
53’
Karol MetsArgument
Corner
56’
59’
Maximilian WittekShot on target
Naatan SkyttäShot on target
66’
69’
Tom MeyerFoul
70’
74’
Sean KlaiberArgument
Semih ŞahinPenalty2-0 (Kaiserslautern)
75’
Corner
77’
Corner
90+2’
Full-time2-0

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.34 0.59 31’ Miloš Luković (Kaiserslautern), 1-0 31’ 75’ Semih Şahin (Kaiserslautern), 2-0 75’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.34 0.59 31’ Miloš Luković (Kaiserslautern), 1-0 Luković 31’ 75’ Semih Şahin (Kaiserslautern), 2-0 Şahin 75’
Kaiserslautern 2.34 xGBochum 0.59 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Bochum attacking Kaiserslautern attacking 
75’ Semih Şahin (Kaiserslautern), penalty, 0.79 xG, goal 31’ Miloš Luković (Kaiserslautern), open play, 0.58 xG, goal 49’ Mario Sauer (Kaiserslautern), open play, 0.30 xG, off target 83’ Philipp Hofmann (Bochum), set piece, 0.21 xG, off target 87’ Sean Klaiber (Bochum), open play, 0.21 xG, off target 29’ Miloš Luković (Kaiserslautern), open play, 0.14 xG, off target 40’ Miloš Luković (Kaiserslautern), open play, 0.11 xG, blocked 71’ Jarne Steuckers (Bochum), set piece, 0.07 xG, off target 84’ Mario Sauer (Kaiserslautern), open play, 0.07 xG, off target 46’ Mika Haas (Kaiserslautern), open play, 0.06 xG, blocked 22’ Paul Joly (Kaiserslautern), open play, 0.04 xG, off target 27’ Mats Pannewig (Bochum), open play, 0.04 xG, blocked 66’ Naatan Skyttä (Kaiserslautern), open play, 0.04 xG, saved 44’ Ibrahim Kanate (Kaiserslautern), open play, 0.04 xG, blocked 57’ Maxwell Gyamfi (Kaiserslautern), from a corner, 0.04 xG, off target 48’ Naatan Skyttä (Kaiserslautern), open play, 0.04 xG, blocked 40’ Mario Sauer (Kaiserslautern), open play, 0.03 xG, blocked 48’ Semih Şahin (Kaiserslautern), open play, 0.03 xG, off target 5’ Mika Haas (Kaiserslautern), set piece, 0.02 xG, off target 23’ Christian Rasmussen (Bochum), open play, 0.02 xG, saved 59’ Maximilian Wittek (Bochum), open play, 0.02 xG, saved 51’ Philipp Hofmann (Bochum), from a corner, 0.01 xG, off target 90+3’ Berkan Taz (Bochum), open play, 0.01 xG, off target 8’ Paul Joly (Kaiserslautern), from a corner, 0.01 xG, off target 75’ Semih Şahin (Kaiserslautern), penalty, 0.79 xG, goal 31’ Miloš Luković (Kaiserslautern), open play, 0.58 xG, goal 49’ Mario Sauer (Kaiserslautern), open play, 0.30 xG, off target 83’ Philipp Hofmann (Bochum), set piece, 0.21 xG, off target 87’ Sean Klaiber (Bochum), open play, 0.21 xG, off target 29’ Miloš Luković (Kaiserslautern), open play, 0.14 xG, off target 40’ Miloš Luković (Kaiserslautern), open play, 0.11 xG, blocked 71’ Jarne Steuckers (Bochum), set piece, 0.07 xG, off target 84’ Mario Sauer (Kaiserslautern), open play, 0.07 xG, off target 46’ Mika Haas (Kaiserslautern), open play, 0.06 xG, blocked 22’ Paul Joly (Kaiserslautern), open play, 0.04 xG, off target 27’ Mats Pannewig (Bochum), open play, 0.04 xG, blocked 66’ Naatan Skyttä (Kaiserslautern), open play, 0.04 xG, saved 44’ Ibrahim Kanate (Kaiserslautern), open play, 0.04 xG, blocked 57’ Maxwell Gyamfi (Kaiserslautern), from a corner, 0.04 xG, off target 48’ Naatan Skyttä (Kaiserslautern), open play, 0.04 xG, blocked 40’ Mario Sauer (Kaiserslautern), open play, 0.03 xG, blocked 48’ Semih Şahin (Kaiserslautern), open play, 0.03 xG, off target 5’ Mika Haas (Kaiserslautern), set piece, 0.02 xG, off target 23’ Christian Rasmussen (Bochum), open play, 0.02 xG, saved 59’ Maximilian Wittek (Bochum), open play, 0.02 xG, saved 51’ Philipp Hofmann (Bochum), from a corner, 0.01 xG, off target 90+3’ Berkan Taz (Bochum), open play, 0.01 xG, off target 8’ Paul Joly (Kaiserslautern), from a corner, 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

Kaiserslautern 3-4-2-1 Starting XI
Krahl
Elvedi 76’
Gyamfi
Murphy
Joly
Şahin
Sauer 86’
Haas
Skyttä 76’
Kanate 63’
Luković 63’
Bochum 4-2-3-1 Starting XI
Horn
Wittek
Steinwender
Mets
Klaiber
Pannewig 72’
Meyer
Holtmann 55’
Rasmussen 83’
Miyoshi 72’
Hofmann

Player stats

Goalkeeper1 player
90′ 2 0 35 – – – – –
Defenders3 players
Jan Elvedi Taken off
76′ 4 1 – 6 2 33 2 – –
90′ 1 4 – 3 1 54 – – – –
90′ 2 – 1 12 7 59 – – – –
Midfielders7 players
90′ – – 34 2 0.16 1 1 5 1 – –
90′ 1 – 41 2 0.22 2 3 5 – 1 –
Mario Sauer Taken off
86′ – – 23 – 0.00 – 1 4 – 2 –
90′ – – 22 2 0.17 2 1 3 – – –
Thierry Fidjeu-Tazemeta Came on as a substitute
27′ – – 4 – 0.00 – – 1 – 1 –
Fabian Kunze Came on as a substitute
14′ – – 7 – 0.00 1 1 2 2 – –
Simon Asta Came on as a substitute
14′ – – 3 – – – 1 – 1 – –
Forwards5 players
Naatan Skyttä Taken off
76′ – – 2 1 0.08 0.01 – 3 1 24 –
Ibrahim Kanate Taken off
63′ – 1 1 – 0.04 0.35 2 7 1 19 –
Miloš Luković Taken off
63′ 1 – 3 1 0.83 0.00 1 4 – 10 –
Erencan Yardımcı Came on as a substitute
27′ – – – – – 0.01 – – – 3 –
Marlon Ritter Came on as a substitute
8′ – – – – – 0.01 – – – 3 –
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.

Before kick-off

Kaiserslautern win 42% Avg odds 2.20
Draw 26% Avg odds 3.53
Bochum win 32% Avg odds 2.85

Chances implied by the average closing odds, with the bookmaker margin removed.

Form going into the game

Last five 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 and odds from football-data.co.uk.