Cresciuto nella Dinamo Zagabria, nel 2000 ha debuttato in prima squadra. Dopo due stagioni con la Dinamo Zagabria, il 2 settembre 2002 si è trasferito in Ucraina, alla Dinamo Kiev[1], che ha pagato 4 milioni di euro per il suo cartellino[1]. Ha militato nel club ucraino per quattro anni, vincendo due campionati, una Kubok Ukraïny e una Superkubok Ukraїny. Il 4 luglio 2006 è stato ufficializzato il suo trasferimento al Monaco[2], club francese. Dopo quattro stagioni nel club monegasco, il 18 giugno 2010 si è trasferito in Turchia, al Bucaspor[3]. L'esperienza con il club turco è durata una sola stagione, durante la quale ha realizzato 2 reti in 34 presenze complessive. Nel maggio 2011 è stato ufficializzato il suo ritorno alla Dinamo Zagabria[4], a distanza di 9 anni dall'ultima stagione con il club croato. Il 4 agosto 2014 si è trasferito in prestito al Lokomotiva Zagabria[5]. Nella stagione successiva, l'ultima da calciatore, il Lokomotiva Zagabria lo ha acquistato a titolo definitivo[6].
Terminata la carriera da calciatore, nel 2016 è diventato vice allenatore del Lokomotiva Zagabria[17]. Nella stagione successiva è diventato tecnico della formazione Under-19 del Lokomotiva Zagabria[18]. Il 5 gennaio 2021 è diventato tecnico del Hrvatski Dragovoljac[19]. L'esperienza al Hrvatski Dragovoljac, però, è stata brevissima: il 9 gennaio 2021, appena quattro giorni dopo l'annuncio, ha lasciato il club ed è diventato nuovo tecnico della prima squadra del Lokomotiva Zagabria[18]. Il 13 marzo 2021 è stato sollevato dall'incarico[20]. Il 6 luglio 2021 è diventato tecnico del Jarun[21].