Viborg vs Odense

19 October 2025 · Danish Superliga · 2025/26 · Referee Sandi Putros

Full time 1 – 2

Half-time: 1–0

  • Jakob Vester 5’
  • Noah Ganaus 57’
  • Jona Niemiec 60’

Match summary

Odense came from behind to win 2-1 away at Viborg. Viborg led 1-0 at half-time.

Jakob Vester put Viborg ahead in the 5th minute, Noah Ganaus equalised in the 57th minute, and Jona Niemiec won it in the 60th minute.

The chances backed that up: Odense created 1.76 expected goals (xG) from 18 shots to Viborg's 0.87 from 10.

Match stats

48% Possession 52%
10 Shots 18
2 Shots on target 8
9 Corners 6
438 Passes 464
82.6% Pass accuracy 86.6%
13 Tackles 18
7 Fouls 14
0 Yellow cards 1
0 Red cards 0
0 Offsides 1

Key events

Viborg Odense
Kick-off
Jakob VesterLeft foot shot1-0 (Viborg)
5’
8’
Fiete ArpShot on target
10’
Yaya BojangBjørn Paulsen
21’
Jona NiemiecShot on target
Jakob VesterShot on target
39’
Half-time1-0
Second half underway
54’
Noah GanausShot on target
57’
Noah GanausRight foot shot1-1 (Odense)
60’
Jona NiemiecLeft foot shot1-2 (Odense)
62’
Jona NiemiecShot on target
Sami JalalBilal Brahimi
65’
71’
Ismahila OuédraogoShot on target
79’
Noah GanausTime wasting
83’
Jay-Roy GrotShot on target
Full-time1-2

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 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.87 1.76 5’ Jakob Vester (Viborg), 1-0 5’ 57’ Noah Ganaus (Odense), 1-1 57’ 60’ Jona Niemiec (Odense), 1-2 60’ 0.0 0.5 1.0 1.5 2.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.87 1.76 5’ Jakob Vester (Viborg), 1-0 Vester 5’ 57’ Noah Ganaus (Odense), 1-1 Ganaus 57’ 60’ Jona Niemiec (Odense), 1-2 Niemiec 60’
Viborg 0.87 xGOdense 1.76 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Odense attacking Viborg attacking 
60’ Jona Niemiec (Odense), open play, 0.42 xG, goal 39’ Jakob Vester (Viborg), open play, 0.30 xG, saved 57’ Noah Ganaus (Odense), open play, 0.28 xG, goal 71’ Nicolas Bürgy (Odense), from a corner, 0.15 xG, off target 47’ Tim Freriks (Viborg), from a corner, 0.13 xG, off target 28’ Noah Ganaus (Odense), open play, 0.13 xG, blocked 46’ Thomas Jørgensen (Viborg), open play, 0.13 xG, blocked 49’ Noah Ganaus (Odense), open play, 0.12 xG, off target 72’ Jay-Roy Grot (Odense), open play, 0.12 xG, off target 9’ Rasmus Falk (Odense), from a corner, 0.09 xG, off target 54’ Noah Ganaus (Odense), open play, 0.09 xG, saved 5’ Jakob Vester (Viborg), open play, 0.08 xG, goal 23’ Bilal Brahimi (Viborg), open play, 0.08 xG, off target 41’ Adam Sørensen (Odense), open play, 0.08 xG, blocked 62’ Jona Niemiec (Odense), open play, 0.08 xG, saved 21’ Jona Niemiec (Odense), open play, 0.07 xG, saved 82’ Stipe Radić (Viborg), set piece, 0.06 xG, off target 83’ Jay-Roy Grot (Odense), open play, 0.04 xG, saved 8’ Fiete Arp (Odense), direct free kick, 0.04 xG, saved 90’ Jeppe Grønning (Viborg), from a corner, 0.03 xG, off target 1’ Daniel Anyembe (Viborg), from a corner, 0.03 xG, blocked 28’ Fiete Arp (Odense), open play, 0.02 xG, blocked 41’ Adam Sørensen (Odense), from a corner, 0.02 xG, blocked 4’ Hjalte Bidstrup (Viborg), set piece, 0.02 xG, off target 71’ Ismahila Ouédraogo (Odense), from a corner, 0.01 xG, saved 1’ Hjalte Bidstrup (Viborg), from a corner, 0.01 xG, blocked 89’ Julius Berthel Askou (Odense), set piece, 0.01 xG, off target 90+4’ Max Ejdum (Odense), open play, 0.01 xG, off target 60’ Jona Niemiec (Odense), open play, 0.42 xG, goal 39’ Jakob Vester (Viborg), open play, 0.30 xG, saved 57’ Noah Ganaus (Odense), open play, 0.28 xG, goal 71’ Nicolas Bürgy (Odense), from a corner, 0.15 xG, off target 47’ Tim Freriks (Viborg), from a corner, 0.13 xG, off target 28’ Noah Ganaus (Odense), open play, 0.13 xG, blocked 46’ Thomas Jørgensen (Viborg), open play, 0.13 xG, blocked 49’ Noah Ganaus (Odense), open play, 0.12 xG, off target 72’ Jay-Roy Grot (Odense), open play, 0.12 xG, off target 9’ Rasmus Falk (Odense), from a corner, 0.09 xG, off target 54’ Noah Ganaus (Odense), open play, 0.09 xG, saved 23’ Bilal Brahimi (Viborg), open play, 0.08 xG, off target 5’ Jakob Vester (Viborg), open play, 0.08 xG, goal 41’ Adam Sørensen (Odense), open play, 0.08 xG, blocked 62’ Jona Niemiec (Odense), open play, 0.08 xG, saved 21’ Jona Niemiec (Odense), open play, 0.07 xG, saved 82’ Stipe Radić (Viborg), set piece, 0.06 xG, off target 83’ Jay-Roy Grot (Odense), open play, 0.04 xG, saved 8’ Fiete Arp (Odense), direct free kick, 0.04 xG, saved 90’ Jeppe Grønning (Viborg), from a corner, 0.03 xG, off target 1’ Daniel Anyembe (Viborg), from a corner, 0.03 xG, blocked 28’ Fiete Arp (Odense), open play, 0.02 xG, blocked 41’ Adam Sørensen (Odense), from a corner, 0.02 xG, blocked 4’ Hjalte Bidstrup (Viborg), set piece, 0.02 xG, off target 71’ Ismahila Ouédraogo (Odense), from a corner, 0.01 xG, saved 1’ Hjalte Bidstrup (Viborg), from a corner, 0.01 xG, blocked 90+4’ Max Ejdum (Odense), open play, 0.01 xG, off target 89’ Julius Berthel Askou (Odense), set piece, 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

Viborg 4-3-3 Starting XI
Lund
Kuzmić 81’
Anyembe
Radić
Bidstrup
Jørgensen
Grønning
Vester 60’
Nouck 65’
Brahimi 65’
Freriks 60’
Odense 3-4-1-2 Starting XI
Myhra
Bürgy
Askou
Paulsen 10’
Sørensen 87’
Owusu
Falk
Ouédraogo 87’
Arp
Niemiec 63’
Ganaus

Player stats

Goalkeeper1 player
90′ 5 2 27 2 – – – –
Defenders4 players
90′ 1 – – 2 – 40 – – 1 –
90′ – – – 2 2 94 1 – – –
Stipe Radić
90′ 1 1 – 4 3 92 1 – – –
Srđan Kuzmić Taken off
81′ 2 1 – 4 – 43 – – – –
Midfielders6 players
90′ – – – – –
90′ – – 45 – – 4 – 10 – 5 –
Jakob Vester Taken off
60′ 1 – 16 – – – – 1 – – –
Charly Nouck Taken off
65′ – – 5 – – – – 2 – 1 –
Asker Beck Came on as a substitute
30′ – – 8 – – 2 – 2 1 – –
Mads Søndergaard Came on as a substitute
9′ – – 3 – – – 1 – 1 – –
Forwards5 players
Bilal Brahimi Taken off
65′ – – 1 – 0.08 – 1 3 2 18 –
Tim Freriks Taken off
60′ – – 1 – 0.13 – – 5 1 10 –
Dorian Hanza Came on as a substitute
30′ – – – – – – – 1 – 3 –
Yonis Njoh Came on as a substitute
25′ – – – – – – – 2 1 3 –
Sami Jalal Came on as a substitute
25′ – – – – – – – 2 1 8 –
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. A blank cell means that figure is not available for that player.

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.