Cresciuto nel settore giovanile dello Slaven Belupo, il 27 maggio 2017 firma un contratto borsa di studio con il club.[1] Ha esordito in prima squadra il 2 dicembre 2017 disputando la trasferta di campionato persa 2-0 contro l'Osijek.[2] Il 1º luglio 2019 si trasferisce nell'Hajduk Spalato firmando un contratto valido fino al 30 giugno 2023.[3][4] Otto giorni dopo fa il suo debutto con i Bili dove segna anche il gol decisivo del 2-0 nella trasferta, valevole per l'andata del primo turno preliminare di qualificazione di Europa League, contro il Gżira Utd.[5] Il 28 luglio alla seconda giornata di campionato segna la sua prima rete in 1.HNL nella trasferta vinta 3-0 contro il Varaždin.[6]
Il 31 gennaio 2022 si trasferisce fino al termine della stagione, con la formula del prestito con diritto di riscatto, in Portogallo tra le file del Famalicão.[7]
Il 13 febbraio, subentrando al posto di João Teixeira, fa il suo debutto con i Famalicenses trovando anche il gol nel match di campionato vinto 5-0 contro il Moreirense.[8] Il 10 luglio seguente si accasa tra le file del Sebenico con la formula del prestito con diritto di riscatto.[9][10]
Il 16 luglio seguente fa il suo debutto con i Narančasti, subentra al posto di Matija Rom nel match di campionato perso contro il Rijeka (0-1).[11] Il 9 settembre nella gara interna contro la sua ex squadra, l'Hajduk Spalato, trova le rete del 1-1 finale nonché la prima rete personale con la nuova casacca.[12]
Il 21 gennaio 2024 si trasferisce a titolo definitivo tra le file del DAC Dunajská Streda, firma con il club slovacco un contratto valido fino al 30 giugno 2027.[13][14]