Prestito alla Lokomotiva e anni alla Dinamo Zagabria
Cresciuto nella Dinamo Zagabria, ha debuttato tra i professionisti nel 2009 con la Lokomotiva Zagabria, squadra in cui ha trascorso 1 anno e mezzo in prestito tornando alla casa base Dinamo Zagabria nel dicembre 2011.
Ha giocato per 6 anni nel club in cui è cresciuto, diventando titolare dalla seconda stagione dopo che nella prima aveva giocato 10 partite su 13 in campionato (in cui ha segnato 3 goal, in ordine nel pareggio esterno per 1-1 contro il Rjeka, partita in cui aveva rimpiazzato al 77º minuto il connazionale Mateo Kovačić,[1] e poi una doppietta nella gara successiva vinta per 4-1[2] contro l'Istria in cui invece è partito titolare giocando poi tutta la partita), ma senza essere titolare fisso.
Il 16 settembre 2015 segna il goal del provvisorio 1-0 al 24º minuto nella storica vittoria della sua squadra in Champions League contro una squadra prestigiosa contro l'Arsenal per 2-1.[3][4][5] Nel gennaio 2016 subisce un grave infortunio ai legamenti che lo costringe a stare fuori per 6 mesi e a saltare quindi gli Europei 2016 in Francia.[6][7] Torna a giocare il 6 luglio 2016 nella partita amichevole vinta per 1-0 contro il Copenaghen.[8]
Il 1º ottobre 2020 fa ritorno alla Lokomotiva Zagabria,[10] club in cui milita sino al termine della stagione 2022-2023 per poi ritirarsi dal calcio giocato.[11]
Nazionale
Tra il 2005 e il 2008 ha giocato dall'Under-16 all'Under-20 delle giovanili croate, senza passare per l'Under-21, per poi debuttare con la Nazionale maggiore nel 2013 nell'amichevole vinta per 3-2 contro il Liechtenstein rilevando al 46º minuto il collega di reparto Hrvoje Milić.[12]
Dall'arrivo di Ante Čačić nell'ottobre 2015 è diventato un convocato fisso della selezione slava, pur non venendo convocato a Euro 2016 per via di un infortunio.[6] Tornato dall'infortunio rientra in squadra continua alternandosi con Ivan Strinić sulla fascia sinistra; continua a venire convocato anche dopo l'esonero di Čačić nell'ottobre 2017 con l'arrivo di Zlatko Dalić. Viene poi convocato per i Mondiali 2018 in Russia,[13] dove subentra in 3 occasioni a Strinić (in ottavi, quarti e semifinali), oltre ad avere giocato titolare nella sfida vinta contro l'Islanda nella fase a gironi. Non gioca invece nella finale in cui la sua squadra viene battuta per 4-2 dalla Francia.[14]