Mancino puro, Halilović è un centrocampista e trequartista, che ama agire tra le linee, anche se spesso arretra per poter impostare l'azione. Abile nell'uno contro uno, per le sue improvvise accelerazioni e per il suo ottimo controllo di palla è stato paragonato al connazionale Luka Modrić.[4]
Dotato di grande rapidità e visione di gioco, era considerato insieme a Mateo Kovačić uno dei migliori talenti del calcio croato ed europeo.[5][6]
Nel 2012 è stato inserito nella lista dei migliori calciatori nati dopo il 1991 stilata da Don Balón.[7]
Carriera
Club
Dinamo Zagabria
Nel giugno 2012 firma il suo primo contratto da professionista con la Dinamo Zagabria. Il 27 settembre 2012 debutta in prima squadra nel Derby Eterno vinto per 3-1 sul Hajduk Spalato, subentrando al posto di Sammir a dieci minuti dal termine. Diventa così il più giovane debuttante della storia della Dinamo Zagabria, a 16 anni e 101 giorni.[8] Segna il suo primo gol nel match contro lo Slaven Belupo, superando il precedente record di Mateo Kovačić di più giovane calciatore ad aver segnato nel campionato croato, a 16 anni e 113 giorni.[9]
Il 24 ottobre 2012 diventa il secondo più giovane calciatore ad aver mai debuttato in Champions League. La partita in questione era Dinamo Zagabria-Paris Saint-Germain, terminata 0-2 a favore dei parigini.[10] Conclude la sua prima stagione da professionista con 18 presenze e 2 gol vincendo la sua prima Prva HNL con il club.
Barcellona
Il 27 marzo 2014 viene annunciato e ufficializzato l'acquisto del giocatore da parte del Barcellona per 5 milioni di euro[11]. Il trasferimento sarà effettivo dal 1º luglio dello stesso anno. Il 23 aprile 2014 ai blaugrana viene bloccato il mercato in entrata ed il trasferimento del croato viene sospeso. Dopo diversi ricorsi, il 5 maggio, Halilovic firma un contratto di cinque anni da 2 milioni di euro.
Inizia nella squadra delle riserve dove sceglie la maglia numero 23. Il 15 gennaio 2015 debutta in prima squadra contro l'Elche in un match di Coppa del Re sostituendo Adama Traoré. Conclude la sua prima stagione in maglia catalana con 4 gol in 30 presenze totali.
Prestito allo Sporting Gijon
Il 21 agosto 2015 passa con la formula del prestito annuale allo Sporting Gijon.[12] Otto giorni più tardi debutta, in sostituzione di Carlos Carmona, nella Liga contro il Real Sociedad. Il 3 ottobre realizza la prima rete in categoria ai danni dell'Espanyol. Il 1º novembre sigla il goal vittoria contro il Malaga. Il 15 dicembre, durante la partita di Coppa del Re contro il Betis, segna una doppietta nel 3-3 finale. Conclude la stagione con 37 presenze e 5 reti totali.
Amburgo
Il 19 luglio 2016 viene ceduto a titolo definitivo ai tedeschi dell'Amburgo per la cifra di 5 milioni ma con un diritto di riacquisto, in favore dei blaugrana, fissato a 10 milioni. Halilovic ha firmato un contratto quadriennale.[13]
Nel mercato invernale del 2017 passa in prestito con diritto di riscatto al Las Palmas per un anno e mezzo, in cui colleziona in totale in campionato 38 presenze e 2 gol. A fine stagione fa ritorno all'Amburgo.
Milan e prestiti allo Standard Liegi e all'Heerenveen
Il 3 luglio 2018 arriva a parametro zero al Milan,[14] firmando un contratto triennale sino al 2021. Sceglie di indossare la maglia numero 77. Esordisce nella partita di andata contro il F91 Dudelange entrando a tre minuti dalla fine. Nella partita di ritorno sempre contro il F91 Dudelange parte titolare.
Il 31 gennaio 2019, dopo sole 3 presenze in Europa League, si trasferisce allo Standard Liegi[15][16] in prestito per 18 mesi con diritto di riscatto.
Dopo aver interrotto anticipatamente il prestito con la squadra belga, il 3 settembre 2019 viene ingaggiato dall'Heerenveen in prestito per una stagione.[17] Tornato al Milan, il 5 ottobre 2020 risolve il contratto che lo legava alla società rossonera e rimane svincolato.[18]
Birmingham City e Reading
Il 23 novembre 2020, il centrocampista croato riparte dalla Football League Championship, la seconda divisione del campionato di calcio inglese, venendo ingaggiato a parametro zero a campionato in corso dal Birmingham City.[19]
Segna il suo primo gol con la squadra inglese il 27 febbraio 2021, nella partita vinta contro il QPR.
Il 27 agosto 2021 firma un contratto annuale con il Reading.[20]
Rijeka e Fortuna Sittard
Il 6 luglio 2022 fa ritorno in patria accasandosi al Rijeka.[21] Il 31 gennaio 2023, il suo contratto con la squadra croata sarà risolto, dopo solo 8 presenze ed una sola rete.[22]
Il 18 luglio 2023, diventa ufficialmente un nuovo giocatore del Fortuna Sittard, firmando un contratto annuale con opzione per le seguenti due stagioni.[23]
Nazionale
Il 10 giugno 2013 debutta a soli 16 anni e 357 giorni in nazionale maggiore, giocando 40 minuti nell'amichevole contro il Portogallo e diventando il più giovane calciatore ad aver mai esordito con la maglia della Croazia.[24]
^(EN) Blues capture talented Halilović, su bcfc.com, 23 novembre 2020. URL consultato il 24 novembre 2020 (archiviato dall'url originale il 24 novembre 2020).