Viborg vs Odense

24 July 2026 · Danish Superliga · 2026/27 · Referee Frederik Svendsen

Full time 1 – 0

Half-time: 0–0

  • Thomas Jørgensen 56’

Match summary

Viborg won 1-0 at home to Odense. It was goalless at half-time.

Thomas Jørgensen put Viborg ahead in the 56th minute.

The chances backed that up: Viborg created 2.03 expected goals (xG) from 10 shots to Odense's 1.51 from 19.

Match stats

43% Possession 57%
10 Shots 19
3 Shots on target 4
7 Corners 10
350 Passes 469
77.7% Pass accuracy 84.0%
19 Tackles 18
15 Fouls 11
2 Yellow cards 1
0 Red cards 0
1 Offsides 1

Key events

Viborg Odense
Kick-off
15’
35’
Fiete ArpShot on target
42’
Fiete ArpShot on target
Asker BeckShot on target
45’
Second half underway
Half-time0-0
48’
Topi KeskinenShot on target
Thomas JørgensenRight foot shot1-0 (Viborg)
56’
Sami JalalBilal Brahimi
57’
Dorian HanzaShot on target
65’
68’
Jona NiemiecShot on target
74’
77’
Mees HoedemakersCharly Nouck
80’
Full-time1-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 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.03 1.51 56’ Thomas Jørgensen (Viborg), 1-0 56’ 0.0 0.5 1.0 1.5 2.0 2.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.03 1.51 56’ Thomas Jørgensen (Viborg), 1-0 Jørgensen 56’
Viborg 2.03 xGOdense 1.51 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Odense attacking Viborg attacking 
56’ Thomas Jørgensen (Viborg), set piece, 0.92 xG, goal 90+1’ Adam Kleis-Kristoffersen (Viborg), open play, 0.42 xG, off target 68’ Jona Niemiec (Odense), open play, 0.36 xG, saved 83’ Noah Ganaus (Odense), set piece, 0.24 xG, off target 19’ Adam Sørensen (Odense), open play, 0.19 xG, blocked 89’ Adam Sørensen (Odense), open play, 0.15 xG, blocked 12’ Bilal Brahimi (Viborg), open play, 0.14 xG, off target 32’ Oliver Bundgaard (Viborg), from a corner, 0.14 xG, off target 37’ Charly Nouck (Viborg), open play, 0.13 xG, blocked 65’ Dorian Hanza (Viborg), open play, 0.11 xG, saved 44’ Ismahila Ouédraogo (Odense), open play, 0.09 xG, off target 48’ Topi Keskinen (Odense), open play, 0.07 xG, saved 8’ Jona Niemiec (Odense), open play, 0.06 xG, off target 77’ Charly Nouck (Viborg), open play, 0.05 xG, off target 90+1’ Lasse Legolas (Odense), open play, 0.05 xG, off target 2’ Bilal Brahimi (Viborg), open play, 0.05 xG, hit the woodwork 59’ Fiete Arp (Odense), open play, 0.04 xG, off target 67’ Fiete Arp (Odense), open play, 0.04 xG, off target 69’ Topi Keskinen (Odense), open play, 0.04 xG, blocked 2’ Fiete Arp (Odense), open play, 0.04 xG, hit the woodwork 45’ Asker Beck (Viborg), open play, 0.03 xG, saved 53’ Topi Keskinen (Odense), open play, 0.04 xG, blocked 79’ Lukas Kirkegaard (Viborg), direct free kick, 0.04 xG, off target 36’ Fiete Arp (Odense), open play, 0.03 xG, off target 42’ Fiete Arp (Odense), open play, 0.02 xG, saved 4’ Fiete Arp (Odense), open play, 0.02 xG, off target 34’ Jacob Bonde (Odense), from a corner, 0.02 xG, blocked 72’ Marcus McCoy (Odense), set piece, 0.01 xG, off target 35’ Fiete Arp (Odense), from a corner, 0.01 xG, saved 56’ Thomas Jørgensen (Viborg), set piece, 0.92 xG, goal 90+1’ Adam Kleis-Kristoffersen (Viborg), open play, 0.42 xG, off target 68’ Jona Niemiec (Odense), open play, 0.36 xG, saved 83’ Noah Ganaus (Odense), set piece, 0.24 xG, off target 19’ Adam Sørensen (Odense), open play, 0.19 xG, blocked 89’ Adam Sørensen (Odense), open play, 0.15 xG, blocked 32’ Oliver Bundgaard (Viborg), from a corner, 0.14 xG, off target 12’ Bilal Brahimi (Viborg), open play, 0.14 xG, off target 37’ Charly Nouck (Viborg), open play, 0.13 xG, blocked 65’ Dorian Hanza (Viborg), open play, 0.11 xG, saved 44’ Ismahila Ouédraogo (Odense), open play, 0.09 xG, off target 48’ Topi Keskinen (Odense), open play, 0.07 xG, saved 8’ Jona Niemiec (Odense), open play, 0.06 xG, off target 77’ Charly Nouck (Viborg), open play, 0.05 xG, off target 90+1’ Lasse Legolas (Odense), open play, 0.05 xG, off target 2’ Bilal Brahimi (Viborg), open play, 0.05 xG, hit the woodwork 59’ Fiete Arp (Odense), open play, 0.04 xG, off target 67’ Fiete Arp (Odense), open play, 0.04 xG, off target 69’ Topi Keskinen (Odense), open play, 0.04 xG, blocked 2’ Fiete Arp (Odense), open play, 0.04 xG, hit the woodwork 53’ Topi Keskinen (Odense), open play, 0.04 xG, blocked 45’ Asker Beck (Viborg), open play, 0.03 xG, saved 79’ Lukas Kirkegaard (Viborg), direct free kick, 0.04 xG, off target 36’ Fiete Arp (Odense), open play, 0.03 xG, off target 42’ Fiete Arp (Odense), open play, 0.02 xG, saved 4’ Fiete Arp (Odense), open play, 0.02 xG, off target 34’ Jacob Bonde (Odense), from a corner, 0.02 xG, blocked 72’ Marcus McCoy (Odense), set piece, 0.01 xG, off target 35’ Fiete Arp (Odense), from a corner, 0.01 xG, saved
Size shows xG Goal On target Off target or blocked

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

Lineups

Viborg 4-3-3 Starting XI
Kiilerich
Kuzmić 76’
Bundgaard
Kirkegaard
Zaletel
Jørgensen
Grønning
Beck 76’
Nouck 80’
Hanza 81’
Brahimi 57’
Odense 4-4-2 Starting XI
Hansen
McCoy
Sørensen
Gomez 79’
Therkildsen 79’
Keskinen
Bonde
Ouédraogo
Arp 87’
Ganaus
Niemiec 74’

Player stats

Goalkeeper1 player
90′ 4 0 30 – – – – –
Defenders5 players
Srđan Kuzmić Taken off
76′ 1 1 – 2 1 31 1 – – –
90′ 3 – – 4 1 65 – – – –
90′ 2 – – 4 2 63 1 – –
90′ 4 2 – 9 1 32 2 – 1 –
Daniel Anyembe Came on as a substitute
14′ 2 1 – 3 1 2 – – – –
Midfielders7 players
Thomas Jørgensen
90′ 1 – 24 – – 2 1 4 – 1 –
90′ – – 31 – – 2 2 3 4 1
Asker Beck Taken off
76′ – – 20 – – 1 – 3 – – –
Bilal Brahimi Taken off
57′ – – 17 – – – – 1 1 1 –
Charly Nouck Taken off
80′ – – 15 4 – 2 – 6 3 1 –
Philip Keller Came on as a substitute
14′ – – 1 – – – 1 1 – 1 –
Mees Hoedemakers Came on as a substitute
10′ – – 1 – – – – – 1 – –
Forwards3 players
Dorian Hanza Taken off
81′ – – 1 1 0.11 – 1 7 3 11 –
Sami Jalal Came on as a substitute
33′ – – – – – – – 2 – 6 –
Adam Kleis-Kristoffersen Came on as a substitute
9′ – – 1 – 0.42 – – 1 1 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.

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.