# Prva hrvatska nogometna liga 2003-2004

La Prva hrvatska nogometna liga 2003-2004, conosciuta anche come Prva HNL Ožujsko 2003-2004 per motivi di sponsorizzazione, è stata la tredicesima edizione della massima serie del campionato di calcio croato, disputata tra il 26 luglio 2003 e il 15 maggio 2004, e conclusa con la vittoria del Hajduk Spalato, al suo quinto titolo (diciassettesimo in totale).
Capocannoniere del torneo fu Robert Špehar (NK Osijek), con 18 reti.

## Formula

La formula del torneo fu la stessa della stagione precedente. Le squadre partecipanti furono dodici e disputarono una prima fase di andata e ritorno per un totale di 22 partite.
Le prime sei disputarono i play-off per il titolo e l'ammissione alle coppe europee mentre le ultime sei i play-out al termine dei quali l'ultima fu retrocessa e la penultima spareggiò con la seconda della 2.HNL. In questa fase vennero mantenuti i punti conquistati nella prima parte del torneo.
Le squadre qualificate alle coppe europee furono cinque: la vincente alla UEFA Champions League 2004-2005, la seconda e la vincitrice della coppa nazionale alla Coppa UEFA 2004-2005 e due ulteriori squadre alla Coppa Intertoto 2004.

## Squadre

| Squadra | Città | Stadio | Stagione 2002-03 |
| NK Dinamo | Zagabria | Stadio Maksimir | Campione |
| HNK Hajduk | Spalato | Stadio di Poljud | 2º |
| NK Varteks | Varaždin | Stadio Anđelko Herjavec | 3º |
| NK Kamen Ingrad | Velika | ŠRC Kamen-Ingrad | 4º |
| HNK Cibalia | Vinkovci | Stadio Cibalia | 5º |
| NK Zagreb | Zagabria | Stadio Kranjčevićeva | 6º |
| NK Slaven Belupo | Koprivnica | Stadio "Ivan Kušek Apaš" | 7º |
| NK Osijek | Osijek | Gradski vrt | 8º |
| HNK Rijeka | Fiume | Stadio Cantrida | 9º |
| NK Zadar | Zara | Stadio Stanovi | 10º |
| NK Marsonia | Slavonski Brod | Gradski Stadion uz Savu | 1º in 2. HNL Nord/Est |
| NK INKER | Zaprešić | Gradski Stadion | 1º in 2. HNL Ovest/Sud |

## Prima fase
### Classifica

| Pos. | Squadra | Pt | G | V | N | P | GF | GS | DR |
| 1. | Hajduk Spalato | 55 | 22 | 18 | 1 | 3 | 46 | 18 | +28 |
| 2. | Dinamo Zagabria | 50 | 22 | 15 | 5 | 2 | 47 | 16 | +31 |
| 3. | Rijeka | 31 | 22 | 8 | 7 | 7 | 26 | 25 | +1 |
| 4. | Osijek | 29 | 22 | 8 | 5 | 9 | 36 | 40 | -4 |
| 5. | Varteks Varaždin | 29 | 22 | 7 | 8 | 7 | 21 | 25 | -4 |
| 6. | Zara | 28 | 22 | 7 | 7 | 8 | 37 | 44 | -7 |
| 7. | Kamen Ingrad | 28 | 22 | 8 | 4 | 10 | 32 | 27 | +5 |
| 8. | Inter Zaprešić | 27 | 22 | 6 | 9 | 7 | 22 | 23 | -1 |
| 9. | Slaven Belupo | 26 | 22 | 6 | 8 | 8 | 22 | 27 | -5 |
| 10. | Cibalia | 20 | 22 | 5 | 5 | 12 | 25 | 35 | -10 |
| 11. | NK Zagabria | 19 | 22 | 3 | 10 | 9 | 21 | 32 | -11 |
| 12. | Marsonia | 17 | 22 | 4 | 5 | 13 | 25 | 48 | -23 |
Legenda:
    Ammessa al gruppo per il titolo
    Ammessa al gruppo retrocessione
Note:
    Tre punti a vittoria, uno a pareggio, zero a sconfitta.

### Risultati
#### Tabellone

| | Haj | Din | Rij | Osi | Var | Zad | Kam | Ink | Sla | Cib | Zag | Mar |
| Hajduk Spalato | | 3:1 | 4:0 | 2:0 | 2:0 | 3:1 | 1:0 | 1:4 | 2:1 | 3:1 | 2:0 | 5:0 |
| Dinamo Zagabria | 1:0 | | 2:0 | 4:0 | 3:0 | 4:2 | 1:1 | 1:0 | 4:0 | 3:2 | 1:1 | 7:0 |
| Rijeka | 1:2 | 0:0 | | 2:0 | 0:0 | 4:2 | 1:2 | 0:1 | 2:0 | 0:1 | 1:0 | 3:1 |
| Osijek | 2:3 | 3:2 | 2:3 | | 3:1 | 1:2 | 3:2 | 3:2 | 0:1 | 2:1 | 5:2 | 2:1 |
| Varteks Varaždin | 2:0 | 0:2 | 1:1 | 1:1 | | 3:2 | 1:0 | 2:0 | 2:0 | 1:0 | 2:0 | 1:1 |
| Zara | 1:3 | 2:2 | 3:2 | 1:1 | 2:2 | | 2:1 | 0:0 | 2:0 | 4:1 | 1:1 | 3:2 |
| Kamen Ingrad | 0:1 | 0:1 | 0:1 | 2:0 | 3:0 | 2:2 | | 3:1 | 2:0 | 3:2 | 1:1 | 5:0 |
| Inker Zaprešić | 0:2 | 1:1 | 1:1 | 1:1 | 0:0 | 0:2 | 3:1 | | 2:0 | 1:0 | 1:1 | 1:1 |
| Slaven Belupo | 1:1 | 0:1 | 1:1 | 3:3 | 2:1 | 4:0 | 2:0 | 1:1 | | 0:0 | 1:0 | 3:1 |
| Cibalia | 2:3 | 0:1 | 0:1 | 3:2 | 2:0 | 1:1 | 1:1 | 1:0 | 1:1 | | 1:1 | 2:4 |
| NK Zagabria | 0:2 | 0:2 | 1:1 | 0:0 | 1:1 | 3:1 | 3:1 | 1:1 | 1:1 | 2:0 | | 2:3 |
| Marsonia | 0:1 | 1:3 | 1:1 | 1:2 | 0:0 | 4:1 | 0:2 | 0:1 | 0:0 | 1:3 | 3:0 | |

#### Calendario

| Andata (1ª) | Andata (1ª) | 1ª giornata | Ritorno (12ª) | Ritorno (12ª) |
| 26 lug. | 4-2 | Dinamo - Zadar | 2-2 | 25 ott. |
| 26 lug. | 0-0 | Marsonia - Varteks | 1-1 | 25 ott. |
| 26 lug. | 0-1 | Rijeka - Cibalia | 1-0 | 25 ott. |
| 26 lug. | 3-2 | Osijek - Inker | 1-1 | 25 ott. |
| 26 lug. | 2-0 | Slaven Belupo - Kamen | 0-2 | 25 ott. |
| 26 lug. | 2-0 | Hajduk - Zagreb | 2-0 | 25 ott. |
| Andata (2ª) | Andata (2ª) | 2ª giornata | Ritorno (13ª) | Ritorno (13ª) |
| 2 ago. | 1-1 | Zadar - Zagreb | 1-3 | 2 nov. |
| 2 ago. | 0-1 | Kamen - Hajduk | 0-1 | 2 nov. |
| 2 ago. | 2-0 | Inker - Slaven Belupo | 1-1 | 2 nov. |
| 2 ago. | 3-2 | Cibalia - Osijek | 1-2 | 2 nov. |
| 2 ago. | 1-1 | Varteks - Rijeka | 0-0 | 2 nov. |
| 2 ago. | 7-0 | Dinamo - Marsonia | 3-1 | 2 nov. |
| Andata (3ª) | Andata (3ª) | 3ª giornata | Ritorno (14ª) | Ritorno (14ª) |
| 9 ago. | 4-1 | Marsonia - Zadar | 2-3 | 8 nov. |
| 9 ago. | 0-0 | Rijeka - Dinamo | 0-2 | 8 nov. |
| 9 ago. | 3-1 | Osijek - Varteks | 1-1 | 8 nov. |
| 9 ago. | 0-0 | Slaven Belupo - Cibalia | 1-1 | 8 nov. |
| 9 ago. | 1-4 | Hajduk - Inker | 2-0 | 8 nov. |
| 9 ago. | 3-1 | Zagreb - Kamen | 1-1 | 8 nov. |
| Andata (4ª) | Andata (4ª) | 4ª giornata | Ritorno (15ª) | Ritorno (15ª) |
| 16 ago. | 2-0 | Zadar - Kamen | 2-2 | 22 nov. |
| 16 ago. | 1-1 | Inker - Zagreb | 1-1 | 22 nov. |
| 16 ago. | 2-3 | Cibalia - Hajduk | 1-3 | 22 nov. |
| 16 ago. | 2-0 | Varteks - Slaven Belupo | 1-2 | 22 nov. |
| 16 ago. | 4-0 | Dinamo - Osijek | 2-3 | 22 nov. |
| 16 ago. | 1-1 | Marsonia - Rijeka | 1-3 | 22 nov. |
| Andata (5ª) | Andata (5ª) | 5ª giornata | Ritorno (16ª) | Ritorno (16ª) |
| 23 ago. | 4-2 | Rijeka - Zadar | 2-3 | 29 nov. |
| 23 ago. | 2-1 | Osijek - Marsonia | 2-1 | 29 nov. |
| 23 ago. | 0-1 | Slaven Belupo - Dinamo | 0-4 | 29 nov. |
| 23 ago. | 2-0 | Hajduk - Varteks | 0-2 | 29 nov. |
| 23 ago. | 2-0 | Zagreb - Cibalia | 1-1 | 29 nov. |
| 23 ago. | 3-1 | Kamen - Inker | 1-3 | 29 nov. |
| Andata (6ª) | Andata (6ª) | 6ª giornata | Ritorno (17ª) | Ritorno (17ª) |
| 30 ago. | 0-0 | Zadar - Inker | 2-0 | 6 dic. |
| 30 ago. | 1-1 | Cibalia - Kamen | 2-3 | 6 dic. |
| 30 ago. | 2-0 | Varteks - Zagreb | 1-1 | 6 dic. |
| 30 ago. | 1-0 | Dinamo - Hajduk | 1-3 | 6 dic. |
| 30 ago. | 0-0 | Marsonia - Slaven Belupo | 1-3 | 6 dic. |
| 30 ago. | 2-0 | Rijeka - Osijek | 3-2 | 6 dic. |
| Andata (7ª) | Andata (7ª) | 7ª giornata | Ritorno (18ª) | Ritorno (18ª) |
| 13 set. | 1-2 | Osijek - Zadar | 1-1 | 21 feb. |
| 13 set. | 1-1 | Slaven Belupo - Rijeka | 0-2 | 21 feb. |
| 13 set. | 5-0 | Hajduk - Marsonia | 1-0 | 21 feb. |
| 13 set. | 0-2 | Zagreb - Dinamo | 1-1 | 21 feb. |
| 13 set. | 3-0 | Kamen - Varteks | 0-1 | 21 feb. |
| 13 set. | 1-0 | Inker - Cibalia | 0-1 | 21 feb. |
| Andata (8ª) | Andata (8ª) | 8ª giornata | Ritorno (19ª) | Ritorno (19ª) |
| 20 set. | 4-1 | Zadar - Cibalia | 1-1 | 28 feb. |
| 20 set. | 2-0 | Varteks - Inker | 0-0 | 28 feb. |
| 20 set. | 1-1 | Dinamo - Kamen | 1-0 | 28 feb. |
| 20 set. | 3-0 | Marsonia - Zagreb | 3-2 | 28 feb. |
| 20 set. | 1-2 | Rijeka - Hajduk | 0-4 | 28 feb. |
| 20 set. | 0-1 | Osijek - Slaven Belupo | 3-3 | 28 feb. |
| Andata (9ª) | Andata (9ª) | 9ª giornata | Ritorno (20ª) | Ritorno (20ª) |
| 27 set. | 4-0 | Slaven Belupo - Zadar | 0-2 | 6 mar. |
| 27 set. | 2-0 | Hajduk - Osijek | 3-2 | 6 mar. |
| 27 set. | 1-1 | Zagreb - Rijeka | 0-1 | 6 mar. |
| 27 set. | 5-0 | Kamen - Marsonia | 2-0 | 6 mar. |
| 27 set. | 1-1 | Inker - Dinamo | 0-1 | 6 mar. |
| 27 set. | 2-0 | Cibalia - Varteks | 0-1 | 6 mar. |
| Andata (10ª) | Andata (10ª) | 10ª giornata | Ritorno (21ª) | Ritorno (21ª) |
| 4 ott. | 2-2 | Zadar - Varteks | 2-3 | 13 mar. |
| 4 ott. | 3-2 | Dinamo - Cibalia | 1-0 | 13 mar. |
| 4 ott. | 0-1 | Marsonia - Inker | 1-1 | 13 mar. |
| 4 ott. | 1-2 | Rijeka - Kamen | 1-0 | 13 mar. |
| 4 ott. | 5-2 | Osijek - Zagreb | 0-0 | 13 mar. |
| 4 ott. | 1-1 | Slaven Belupo - Hajduk | 1-2 | 13 mar. |
| Andata (11ª) | Andata (11ª) | 11ª giornata | Ritorno (22ª) | Ritorno (22ª) |
| 18 ott. | 3-1 | Hajduk - Zadar | 3-1 | 20 mar. |
| 18 ott. | 1-1 | Zagreb - Slaven Belupo | 0-1 | 20 mar. |
| 18 ott. | 2-0 | Kamen - Osijek | 2-3 | 20 mar. |
| 18 ott. | 1-1 | Inker - Rijeka | 1-0 | 20 mar. |
| 18 ott. | 2-4 | Cibalia - Marsonia | 3-1 | 20 mar. |
| 18 ott. | 0-2 | Varteks - Dinamo | 0-3 | 20 mar. |

## Seconda fase
### Classifica

| | Pos. | Squadra | Pt | G | V | N | P | GF | GS | DR |
| GRUPPO PER IL TITOLO |||||||||||
| | 1. | Hajduk Spalato | 78 | 32 | 25 | 3 | 4 | 63 | 24 | +39 |
| | 2. | Dinamo Zagabria | 76 | 32 | 23 | 7 | 2 | 77 | 25 | +52 |
| | 3. | Rijeka | 42 | 32 | 11 | 9 | 12 | 36 | 41 | -5 |
| | 4. | Osijek | 39 | 32 | 11 | 6 | 15 | 50 | 57 | -7 |
| | 5. | Varteks Varaždin | 38 | 32 | 9 | 11 | 12 | 33 | 42 | -9 |
| | 6. | Zara | 32 | 32 | 7 | 11 | 14 | 46 | 71 | -25 |
| GRUPPO RETROCESSIONE |||||||||||
| | 7. | Kamen Ingrad | 46 | 32 | 13 | 7 | 12 | 45 | 36 | +9 |
| | 8. | Inter Zaprešić | 42 | 32 | 11 | 9 | 12 | 40 | 38 | +2 |
| | 9. | Slaven Belupo | 40 | 32 | 10 | 10 | 12 | 37 | 39 | -2 |
| | 10. | NK Zagabria | 36 | 32 | 8 | 12 | 12 | 33 | 41 | -8 |
| | 11. | Cibalia | 31 | 32 | 8 | 7 | 17 | 39 | 53 | -14 |
| | 12. | Marsonia | 25 | 32 | 5 | 10 | 17 | 32 | 64 | -32 |
Legenda:
    Campione di Croazia e ammessa alla UEFA Champions League 2004-2005.
    Ammessa alla Coppa UEFA 2004-2005.
    Ammessa alla Coppa Intertoto 2004.
    Ammessa allo spareggio e poi retrocessa in 2. HNL 2004-2005.
    Retrocessa in 2. HNL 2004-2005.
Note:
    Tre punti a vittoria, uno a pareggio, zero a sconfitta.

### Risultati
#### Tabellone gruppo per il titolo

| | Haj | Din | Rijr | Osi | Var | Zad |
| Hajduk Spalato | | 0:0 | 2:0 | 2:0 | 2:0 | 5:1 |
| Dinamo Zagabria | 3:1 | | 5:0 | 4:1 | 4:1 | 5:0 |
| Rijeka | 0:1 | 0:1 | | 2:1 | 1:0 | 3:1 |
| Osijek | 0:1 | 2:3 | 2:1 | | 4:1 | 1:1 |
| Varteks Varaždin | 0:0 | 3:4 | 1:1 | 2:0 | | 4:1 |
| Zara | 2:3 | 1:1 | 2:2 | 0:3 | 0:0 | |

#### Tabellone gruppo retrocessione

| | Kam | Int | Sla | Zag | Cib | Mar |
| Kamen Ingrad | | 1:0 | 1:0 | 1:0 | 3:1 | 0:0 |
| Inter Zaprešić | 3:2 | | 4:3 | 0:1 | 3:1 | 3:0 |
| Slaven Belupo | 1:1 | 2:0 | | 0:1 | 2:0 | 2:1 |
| NK Zagabria | 1:2 | 2:1 | 0:2 | | 2:1 | 3:0 |
| Cibalia | 2:1 | 3:1 | 2:1 | 2:2 | | 0:0 |
| Marsonia | 1:1 | 0:3 | 2:2 | 0:0 | 3:2 | |

#### Calendario

| Andata (23ª) | Andata (23ª) | 1ª giornata | Ritorno (28ª) | Ritorno (28ª) |
| 27 mar. | 5-1 | Hajduk - Zadar | 3-2 | 24 apr. |
| 27 mar. | 4-1 | Dinamo - Varteks | 4-3 | 24 apr. |
| 27 mar. | 2-1 | Rijeka - Osijek | 1-2 | 24 apr. |
| 27 mar. | 0-0 | Kamen - Marsonia | 1-1 | 24 apr. |
| 27 mar. | 0-1 | Inter - Zagreb | 1-2 | 24 apr. |
| 27 mar. | 2-0 | Slaven Belupo - Cibalia | 1-2 | 24 apr. |
| Andata (24ª) | Andata (24ª) | 2ª giornata | Ritorno (29ª) | Ritorno (29ª) |
| 3 apr. | 0-3 | Zadar - Osijek | 1-1 | 1 mag. |
| 3 apr. | 1-1 | Varteks - Rijeka | 0-1 | 1 mag. |
| 3 apr. | 0-0 | Hajduk - Dinamo | 1-3 | 1 mag. |
| 3 apr. | 3-2 | Marsonia - Cibalia | 0-0 | 1 mag. |
| 3 apr. | 0-2 | Zagreb - Slaven Belupo | 1-0 | 1 mag. |
| 3 apr. | 1-0 | Kamen - Inter | 2-3 | 1 mag. |
| Andata (25ª) | Andata (25ª) | 3ª giornata | Ritorno (30ª) | Ritorno (30ª) |
| 10 apr. | 5-0 | Dinamo - Zadar | 1-1 | 8 mag. |
| 10 apr. | 0-1 | Rijeka - Hajduk | 0-2 | 8 mag. |
| 10 apr. | 4-1 | Osijek - Varteks | 0-2 | 8 mag. |
| 10 apr. | 3-0 | Inter - Marsonia | 3-0 | 8 mag. |
| 10 apr. | 1-1 | Slaven Belupo - Kamen | 0-1 | 8 mag. |
| 10 apr. | 2-2 | Cibalia - Zagreb | 1-2 | 8 mag. |
| Andata (26ª) | Andata (26ª) | 4ª giornata | Ritorno (31ª) | Ritorno (31ª) |
| 17 apr. | 0-0 | Zadar - Varteks | 1-4 | 12 mag. |
| 17 apr. | 2-0 | Hajduk - Osijek | 1-0 | 12 mag. |
| 17 apr. | 5-0 | Dinamo - Rijeka | 1-0 | 12 mag. |
| 17 apr. | 0-0 | Marsonia - Zagreb | 0-3 | 12 mag. |
| 17 apr. | 3-1 | Kamen - Cibalia | 1-2 | 12 mag. |
| 17 apr. | 4-3 | Inter - Slaven Belupo | 0-2 | 12 mag. |
| Andata (27ª) | Andata (27ª) | 5ª giornata | Ritorno (32ª) | Ritorno (32ª) |
| 21 apr. | 3-1 | Rijeka - Zadar | 2-2 | 15 mag. |
| 21 apr. | 2-3 | Osijek - Dinamo | 1-4 | 15 mag. |
| 21 apr. | 0-0 | Varteks - Hajduk | 0-2 | 15 mag. |
| 21 apr. | 2-1 | Slaven Belupo - Marsonia | 2-2 | 15 mag. |
| 21 apr. | 3-1 | Cibalia - Inter | 1-3 | 15 mag. |
| 21 apr. | 1-2 | Zagreb - Kamen | 0-1 | 15 mag. |

## Spareggio

Il Cibalia (11º in Prva liga) affronta in uno spareggio con andata e ritorno il Međimurje (2º in Druga liga).
* Međimurje promosso in Prva Liga, Cibalia retrocesso in Druga.

## Statistiche
### Classifica marcatori

| Pos. | Giocatore | Squadra | Reti |
| 1 | Robert Špehar | Osijek | 18 |
| 2 | Goran Ljubojević | Osijek | 16 |
| 2 | Dario Zahora | Dinamo | 16 |
| 4 | Zoran Zekić | Kamen Ingrad | 13 |
| 5 | Mate Brajković | Zadar | 12 |
| 5 | Petar Krpan | Hajduk | 12 |
| 5 | Marijan Vuka | Marsonia | 12 |
| 8 | Sandro Klić | Rijeka | 11 |
| 8 | Goce Sedloski | Dinamo | 11 |
| 8 | Ivica Karabogdan | Inter Zaprešić | 11 |
| 8 | Srebrenko Posavec | Slaven Belupo | 11 |
| 8 | Hrvatin Gudelj | Zadar | 11 |
Fonte: hrnogomet.com e hns-cff.hr Archiviato il 20 settembre 2018 in Internet Archive.

### Squadra campione

* Allenatore: Zoran Vulić e Petar Nadoveza
| N. | Ruolo | Calciatore |
| 1 | P | Hrvoje Sunara |
| 2 | D | Tomislav Rukavina |
| 3 | D | Andrija Balajić |
| 4 | C | Frane Čačić |
| 5 | A | Almir Turković |
| 6 | D | Vlatko Đolonga |
| 7 | D | Hrvoje Vejić |
| 8 | A | Dragan Blatnjak |
| 10 | C | Mario Carević |
| 11 | A | Zvonimir Deranja |
| 12 | P | Vladimir Balić |
| 13 | A | Petar Krpan |
| 14 | C | Srđan Andrić |
| 15 | C | Nenad Pralija |
| 16 | D | Stjepan Skočibušić |
| 17 | D | Hrvoje Vuković |
| N. | Ruolo | Calciatore |
| 18 | A | Nino Bule |
| 20 | C | Goran Talevski |
| 21 | D | Darko Miladin |
| 22 | D | Suad Filekovič |
| 23 | D | Mato Neretljak |
| 24 | C | Mario Grgurović |
| 27 | C | Ryan Thomson |
| 28 | A | Nikica Jelavić |
| 29 | A | Natko Rački |
| | C | Matos de Oliveira |
| 9 | A | Klemen Lavrič |
| 20 | C | Dean Računica |
| 22 | C | Ante Miše |
| 25 | P | Zlatko Runje |
| 31 | D | Tomislav Grčić |
Fonte: worldfootball.net