Viborg vs Horsens

1 November 2026 · Danish Superliga · 2026/27 · Referee Aydin Uslu

Full time 1 – 0

Half-time: 0–0

  • Dorian Hanza 68’

Match summary

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

Dorian Hanza put Viborg ahead in the 68th minute.

The chances backed that up: Viborg created 3.04 expected goals (xG) from 22 shots to Horsens's 0.58 from 13.

Viborg secured a narrow 1-0 victory against Horsens in the Danish Superliga on matchday 13, dominating proceedings across the pitch. The hosts registered 54 percent possession and created a high volume of chances, recording 22 shots compared to the visitors' 13. Viborg also dominated the shot count on target with 9 to 2, earned 10 corners to 3, and registered 102 attacks against 67. Their superiority was reflected in an expected goals tally of 3.04 versus 0.58 for Horsens. Despite the lopsided statistics and a disciplinary count of 6 fouls and 2 yellow cards for Viborg against 16 fouls and 1 yellow card for Horsens, the match remained scoreless at half-time.

The first notable disciplinary action occurred in the 24th minute when Mads Søndergaard received a yellow card for Viborg, followed by a yellow card for Kingsley Bimpong of Horsens in the 41st minute. After a goalless first half, Viborg replaced Mads Søndergaard with Ruben Alte at the start of the second period, and Horsens brought on John Batigi for Yamirou Ouorou in the 53rd minute. Ruben Alte was then booked with a yellow card in the 58th minute. The decisive moment arrived in the 68th minute when Dorian Hanza scored for Viborg with an xG of 0.48, breaking the deadlock and securing the 1-0 final score.

Match stats

55% Possession 45%
22 Shots 13
9 Shots on target 2
10 Corners 3
102 Attacks 67
58 Dangerous attacks 29
484 Passes 409
81.8% Pass accuracy 78.7%
19 Tackles 18
6 Fouls 16
2 Yellow cards 1
1 Offsides 1

Key events

Viborg Horsens
Kick-off
Dorian HanzaShot on target
1’
5’
Corner
Sami JalalShot on target
15’
Corner
15’
Corner
16’
22’
Corner
24’
25’
Yamirou OuorouShot on target
Mads SøndergaardShot on target
37’
Charly NouckShot on target
39’
41’
Corner
45’
Corner
45+1’
Half-time0-0
Second half underway
Corner
48’
Corner
48’
Corner
51’
53’
Corner
Sami JalalShot on target
54’
58’
Oliver BundgaardShot on target
60’
Corner
61’
Corner
61’
Dorian HanzaRight foot shot1-0 (Viborg)
68’
Ruben AlteShot on target
68’
90’
Kelvin EhibhatiomhanShot on target
Corner
90+3’
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 1 2 3 4 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 3.04 0.58 68’ Dorian Hanza (Viborg), 1-0 68’ 0 1 2 3 4 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 3.04 0.58 68’ Dorian Hanza (Viborg), 1-0 Hanza 68’
Viborg 3.04 xGHorsens 0.58 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Horsens attacking Viborg attacking 
68’ Dorian Hanza (Viborg), open play, 0.48 xG, goal 72’ Lasso Coulibaly (Viborg), open play, 0.37 xG, off target 51’ Dorian Hanza (Viborg), from a corner, 0.33 xG, blocked 37’ Mads Søndergaard (Viborg), open play, 0.28 xG, saved 50’ Sami Jalal (Viborg), open play, 0.22 xG, off target 41’ Asker Beck (Viborg), open play, 0.17 xG, off target 44’ Sami Jalal (Viborg), open play, 0.16 xG, off target 56’ Dorian Hanza (Viborg), open play, 0.16 xG, off target 82’ Adrian Justinussen (Horsens), direct free kick, 0.14 xG, blocked 41’ Mads Søndergaard (Viborg), open play, 0.13 xG, blocked 12’ Asker Beck (Viborg), open play, 0.11 xG, blocked 54’ Sami Jalal (Viborg), open play, 0.09 xG, saved 82’ Julius Madsen (Horsens), set piece, 0.08 xG, off target 1’ Dorian Hanza (Viborg), open play, 0.07 xG, saved 15’ Sami Jalal (Viborg), open play, 0.07 xG, saved 21’ Oliver Bundgaard (Viborg), open play, 0.07 xG, off target 39’ Charly Nouck (Viborg), open play, 0.07 xG, saved 40’ Charly Nouck (Viborg), open play, 0.06 xG, off target 41’ Oliver Bundgaard (Viborg), open play, 0.06 xG, blocked 90’ Fallou Sene (Horsens), open play, 0.07 xG, off target 90’ Kelvin Ehibhatiomhan (Horsens), open play, 0.06 xG, saved 26’ Kelvin Ehibhatiomhan (Horsens), set piece, 0.05 xG, off target 62’ Asker Beck (Viborg), open play, 0.04 xG, blocked 71’ Kelvin Ehibhatiomhan (Horsens), open play, 0.04 xG, off target 68’ Ruben Alte (Viborg), open play, 0.03 xG, saved 25’ Kelvin Ehibhatiomhan (Horsens), open play, 0.03 xG, blocked 23’ Oliver Bundgaard (Viborg), open play, 0.02 xG, off target 37’ Karlo Lusavec (Horsens), open play, 0.02 xG, off target 76’ Kelvin Ehibhatiomhan (Horsens), open play, 0.02 xG, off target 11’ Kelvin Ehibhatiomhan (Horsens), open play, 0.02 xG, off target 49’ Charly Nouck (Viborg), from a corner, 0.02 xG, off target 25’ Yamirou Ouorou (Horsens), open play, 0.02 xG, saved 54’ Victor Pálsson (Horsens), from a corner, 0.01 xG, off target 60’ Oliver Bundgaard (Viborg), open play, 0.01 xG, saved 82’ Julius Madsen (Horsens), set piece, 0.01 xG, blocked 68’ Dorian Hanza (Viborg), open play, 0.48 xG, goal 72’ Lasso Coulibaly (Viborg), open play, 0.37 xG, off target 51’ Dorian Hanza (Viborg), from a corner, 0.33 xG, blocked 37’ Mads Søndergaard (Viborg), open play, 0.28 xG, saved 50’ Sami Jalal (Viborg), open play, 0.22 xG, off target 41’ Asker Beck (Viborg), open play, 0.17 xG, off target 56’ Dorian Hanza (Viborg), open play, 0.16 xG, off target 44’ Sami Jalal (Viborg), open play, 0.16 xG, off target 82’ Adrian Justinussen (Horsens), direct free kick, 0.14 xG, blocked 41’ Mads Søndergaard (Viborg), open play, 0.13 xG, blocked 12’ Asker Beck (Viborg), open play, 0.11 xG, blocked 54’ Sami Jalal (Viborg), open play, 0.09 xG, saved 82’ Julius Madsen (Horsens), set piece, 0.08 xG, off target 1’ Dorian Hanza (Viborg), open play, 0.07 xG, saved 15’ Sami Jalal (Viborg), open play, 0.07 xG, saved 39’ Charly Nouck (Viborg), open play, 0.07 xG, saved 21’ Oliver Bundgaard (Viborg), open play, 0.07 xG, off target 90’ Fallou Sene (Horsens), open play, 0.07 xG, off target 40’ Charly Nouck (Viborg), open play, 0.06 xG, off target 41’ Oliver Bundgaard (Viborg), open play, 0.06 xG, blocked 90’ Kelvin Ehibhatiomhan (Horsens), open play, 0.06 xG, saved 26’ Kelvin Ehibhatiomhan (Horsens), set piece, 0.05 xG, off target 62’ Asker Beck (Viborg), open play, 0.04 xG, blocked 71’ Kelvin Ehibhatiomhan (Horsens), open play, 0.04 xG, off target 68’ Ruben Alte (Viborg), open play, 0.03 xG, saved 25’ Kelvin Ehibhatiomhan (Horsens), open play, 0.03 xG, blocked 23’ Oliver Bundgaard (Viborg), open play, 0.02 xG, off target 37’ Karlo Lusavec (Horsens), open play, 0.02 xG, off target 76’ Kelvin Ehibhatiomhan (Horsens), open play, 0.02 xG, off target 11’ Kelvin Ehibhatiomhan (Horsens), open play, 0.02 xG, off target 49’ Charly Nouck (Viborg), from a corner, 0.02 xG, off target 25’ Yamirou Ouorou (Horsens), open play, 0.02 xG, saved 54’ Victor Pálsson (Horsens), from a corner, 0.01 xG, off target 60’ Oliver Bundgaard (Viborg), open play, 0.01 xG, saved 82’ Julius Madsen (Horsens), set piece, 0.01 xG, blocked
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
Bundgaard
Kirkegaard
Zaletel
Bidstrup 83’
Beck
Grønning
Søndergaard 46’
Nouck 67’
Hanza 83’
Jalal 83’
Horsens 4-2-3-1 Starting XI
Delač
Miličević 87’
Pálsson 77’
Kupijbida
Moro 77’
Bonde
Lusavec
Bimpong 77’
Madsen
Ouorou 53’
Ehibhatiomhan

Player stats

Goalkeeper1 player
90′ 2 0 37 1 – – – –
Defenders5 players
Hjalte Bidstrup Taken off
83′ – 1 – 1 – 51 – – – –
90′ 1 1 – 6 1 62 1 – – –
90′ 1 4 1 7 2 68 – – – –
90′ 7 – 1 8 1 56 1 – – –
Valgeir Lunddal Fridriksson Came on as a substitute
12′ – – – 1 1 7 – – – –
Midfielders8 players
90′ – – 52 2 – 2 1 5 – – –
90′ – – 54 1 – 3 4 9 – 4 –
Mads Søndergaard Taken off
45′ – – 16 – – 1 1 3 1 1
Sami Jalal Taken off
83′ – – 26 5 – 1 1 2 – 1 –
Charly Nouck Taken off
67′ – – 18 3 – – – 6 – 2 –
Ruben Alte Came on as a substitute
45′ – – 15 – – – – 2 1 –
Lasso Coulibaly Came on as a substitute
23′ – – 6 1 – 1 – 2 1 1 –
Philip Keller Came on as a substitute
12′ – – 1 – – – – – 1 – –
Forwards2 players
Dorian Hanza Taken off
83′ 1 – 4 2 1.04 – – 2 – 11 –
Adam Kleis-Kristoffersen Came on as a substitute
12′ – – – – – – – 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.