Olić (a destra) al Marsonia nel 1997, in posa con l'interista Ronaldo in occasione di un'amichevole all'Arena Civica di Milano.
Olić muove i primi passi nel calcio professionistico con il Marsonia nel 1996: in due anni totalizza 42 presenze e 17 reti. Impressionato dalle sue prestazioni, l'Hertha Berlino decide di provarlo: la stagione però non è positiva per lui e al termine dell'annata torna al Marsonia, con cui in 2 stagioni segna 21 gol. Nel 2001 viene tesserato dall'NK Zagabria: anche stavolta il suo bottino di reti è di 21, ma realizzato in 28 presenze nell'arco di una sola stagione. Il suo talento non sfugge agli occhi dell'altro club della capitale croata, la Dinamo Zagabria, con la quale Ivica Olić gioca la stagione 2002-2003 concludendola con il titolo di capocannoniere e 16 reti in 27 presenze.
Tutto ciò viene valutato molto positivamente dal CSKA Mosca, che mette sotto contratto il giocatore. Gioca in Russia 5 stagioni, terminando la sua esperienza nella squadra moscovita con 78 presenze e 35 gol e con la vittoria della Coppa UEFA 2004-2005.
Nel gennaio 2007 si trasferisce nella Bundesliga tedesca, all'Amburgo. Gioca la sua prima partita con la nuova maglia il 31 gennaio contro l'Energie Cottbus. Con il suo contributo l'Amburgo sale fino al settimo posto, valido per la qualificazione alla Intertoto. Il 20 ottobre 2007 mette a referto la sua prima tripletta in Bundesliga nel 4-1 che vede gli amburghesi trionfare ai danni dello Stoccarda.[3]
Olić in azione al Wolfsburg nel 2014
Nell'estate 2009 si trasferisce al Bayern Monaco.[4] L'8 agosto, all'esordio ufficiale con la maglia dei bavaresi, realizza una rete nella gara contro l'Hoffenheim valida come prima giornata della Bundesliga 2009-2010 e terminata in pareggio (1-1).[5] Il 27 aprile segna la sua prima tripletta in Champions League nella semifinale di ritorno vinta contro il Lione per 3-0, punteggio che qualifica il Bayern alla finale del torneo,[6] poi persa contro l'Inter.
Nella stagione 2010-2011 indossa la casacca bavarese solo 10 volte, a causa di un infortunio che lo tiene lontano dal campo per circa 6 mesi[7]. Il 26 aprile 2012 il giocatore, in scadenza di contratto a fine stagione, annuncia di essersi accordato con il Wolfsburg[8]. Il 22 agosto 2014 realizza un gol contro il Bayern Monaco, sua ex squadra, con un gran sinistro da fuori area che si infila all'incrocio dei pali.
Il 30 gennaio 2015, è tornato, per un costo complessivo di 1,5 milioni di euro, all'Amburgo e ha firmato un contratto fino al 2016.[9] Un anno e mezzo più tardi, è passato al Monaco 1860 in Zweite Bundesliga, disputando un'unica stagione per poi annunciare il ritiro e diventare vice-allenatore della nazionale croata.
Nel settembre 2006 il CT croato Slaven Bilić cacciò Olić e i suoi compagni di squadra Boško Balaban e Darijo Srna dal ritiro della selezione croata impegnata per il primo incontro di qualificazione a Euro 2008 contro la Russia, dopo che i tre erano rientrati a tarda notte da una discoteca di Zagabria. I tre ricevettero una multa di 30 000 kuna,[10] e qualche settimana dopo vennero riammessi al ritiro.[3]Viene poi convocato per l'europeo dove la Croazia raggiunge i quarti di finale contro la Turchia. Partecipa poi alle qualificazioni alla coppa del mondo del 2010 dove segna tre reti e la Croazia arriva terza nel gruppo di qualificazione. Prende parte anche alle qualificazioni per l'europeo del 2012 dove va a segno 2 volte nonostante ciò non viene convocato per l'europeo.
Partecipa successivamente alle qualificazioni dell'mondiale del 2014 in Brasile dove segna soltanto un gol.Segna la sua ultima doppietta con la nazionale in un amichevole tra Croazia e Svizzera terminata 2-2 il 5 marzo 2014.Fu convocato dal CT Niko Kovač per Brasile 2014 dove segna la prima rete nella partita dei gironi contro il Camerun l'incontro terminerà 4-0 in favore dei croati.Segna la sua ultima rete con la maglia della Croazia il 28 marzo 2015 in una partita di qualificazione all'europeo del 2016.Il 2 marzo 2016, in una lettera, Olić annuncia il suo ritiro dalla nazionale.[11]
Alla fine di marzo 2021, Sport-Express e Sportske novosti pubblicarono una notizia riguardante l'assunzione di Olić al suo ex club CSKA Mosca in sostituzione di Viktor Goncharenko.[13][14] I rumors furono poi confermati dal capo allenatore della Croazia, Dalić, a Sportske novosti.[15] I suoi assistenti furono a lungo oggetto di voci, con l'ipotesi di Miloš Krasić ed Elvir Rahimić come suoi vice allenatori.[16] Tuttavia, la nomina di Olić fu ufficializzata il 23 marzo 2021.[17] La mossa fu accolta con scetticismo a causa dell'inesperienza di Olić come allenatore principale.[18][19][20] Nonostante i precedenti rumor, Krasić e Rahimić non furono assunti come assistenti, invece Ilija Aračić fu scelto come assistente allenatore,[21] mentre Aleksei Berezutski e Dmitry Kramarenko, già precedentemente assunti, completarono lo staff tecnico. Olić fece il suo esordio il 4 aprile, nella vittoria di campionato per 2-1 contro il FC Tambov.[22] Dopo altre due vittorie, Olić subì la sua prima sconfitta alla quarta partita, perdendo 2-1 contro il Sochi il 18 aprile.[23] Il 25 aprile subì la sua terza sconfitta consecutiva perdendo 1-0 contro lo FC Spartak Moscow nel suo primo Derby di Mosca, con l'espulsione di Ilzat Akhmetov del CSKA al 37º minuto.[24][25] Dopo aver perso 3-2 contro il Dynamo Moscow il 16 maggio, Olić terminò la stagione al sesto posto, con il CSKA che mancò le competizioni europee per la prima volta in 20 anni.[26][27][28] Fu inaspettatamente sollevato dall'incarico il 15 giugno e sostituito da Berezutski, tornando a far parte della squadra di Zlatko Dalić per gli Europei 2020.[29] Ha preso parte come vice del CT Dalić anche al mondiale 2022 in Qatar, dove la Croazia ha raggiunto la semifinale persa 3-0 contro l'Argentina, e agli Europei 2024 in Germania, con l'eliminazione della Croazia ai gironi.