Halilović speelde in de jeugd van Dinamo Zagreb en werd in 2016 overgenomen door stadsgenoot Lokomotiva Zagreb. Zijn debuut voor die club maakte hij op 31 juli 2016, toen op bezoek bij Istra 1961 met 1–1 werd gelijkgespeeld door doelpunten van Theophilus Solomon en Dejan Radonjić. Halilović begon dit duel op de reservebank en hij mocht van coach Tomislav Ivković in de rust invallen voor Luka Ivanušec.[1] De middenvelder vertrok medio 2017 naar Polen, waar Wisła Kraków hem contracteerde.[2]
Anderhalf jaar na zijn vertrek keerde Halilović halverwege het seizoen 2018/19 terug naar Kroatië, waar HNK Rijeka zijn nieuwe club werd.[3] Met Rijeka wist hij in de seizoenen 2018/19 en 2019/20 het Kroatische bekertoernooi te winnen. In januari 2021 vertrok de Kroaat voor een bedrag van circa anderhalf miljoen euro naar sc Heerenveen, waar hij zijn handtekening zette onder een verbintenis voor de duur van drieënhalf jaar.[4] Op 14 januari maakte hij zijn debuut voor Heerenveen tegen RKC Waalwijk (1–1).[5] Op 11 april maakte hij in de Derby van het Noorden tegen FC Groningen (2–0 winst) zijn eerste doelpunt voor de club. Hij begon het seizoen 2021/22 met drie goals in de eerste vier speelrondes. Tussen 2 oktober 2021 en 22 januari 2022 was hij dertien wedstrijden aanvoerder van Heerenveen, nadat eerste aanvoerder Erwin Mulder was uitgevallen met een blessure.[6]
Aan het begin van het seizoen 2023/24 mocht Halilović vertrekken uit Heerenveen, waarop Dinamo Zagreb hem voor een jaar onder contract nam.[7] Hier speelde hij in een jaar tien competitiewedstrijden, waarin hij kampioen werd. Van juli tot november zat hij zonder club, waarna HNK Gorica hem onder contract nam.[8]