Inizia la sua carriera con le giovanili dello Zara. Il 22 luglio del 2007 dove gioca la sua prima partita da professionista contro l'Hajduk Spalato (0-0), giocando tutti i 90 minuti. In totale con lo Zadar colleziona 82 presenze nell'arco di 5 stagioni.
Nella stagione 2008-2009 viene ceduto in prestito all'Hajduk Spalato, con cui debutta il 25 settembre dello stesso anno, nella partita pareggiata 1-1 contro l'Osijek. Riscattato a fine stagione, vestirà la maglia bianca per un quadriennio, collezionando un totale di 112 partite, di cui 14 in Europa League.
Monaco
Il 27 gennaio 2012 passa al Monaco, squadra militante nella Ligue 2.[1] Esordisce con la squadra francese il 6 marzo 2012 contro l'Angers, partita vinta dal Monaco per 2-1. Durante il suo primo anno in Francia segna anche una rete, direttamente da calcio di punizione, all'ultima giornata contro il Boulogne. Al termine della stagione successiva il Monaco è promosso in Ligue 1 con due giornate d'anticipo. Subašić esordisce dunque in Ligue 1 nella prima giornata della stagione 2013-2014 contro il Bordeaux, partita vinta per 2-0. Il 16 settembre 2014, debutta in Champions League nella gara vinta 1-0 allo Stade Louis II contro il Bayer Leverkusen.[2]
L'8 giugno 2020, dopo 292 presenze totali con i monegaschi e in scadenza di contratto, annuncia l'addio al club biancorosso.[3]
Il ritorno a Spalato ed il ritiro
Il 22 settembre 2021 torna dopo 9 anni all'Hajduk Spalato e, firmando da svincolato un contratto valido fino all'estate del 2023, prende la maglia numero 1.[4]
Il 26 ottobre seguente torna tra i pali in una partita ufficiale dopo quasi due anni dall'ultima volta,[5] disputa dal primo minuto l'ottavo di finale di Coppa di Croazia vinto in casa del Belišće (1-5).[6]
L'11 dicembre fa il suo ritorno anche in campionato, subentra nel secondo tempo al posto di Lovre Kalinić nel match in esterna pareggiato 3-3 contro la Lokomotiva Zagabria.[7] Termina la stagione con i Majstori s mora con la vittoria della Coppa di Croazia dove ha difeso i pali dei spalatini negli ottavi e nei quarti di finale della competizione.[8]
Il 28 maggio 2023 indossando la fascia di capitano al braccio disputa contro il Sebenico la sua ultima partita da calciatore, esce dal campo al 24º minuto in onore del suo amico tragicamente scomparso all'età di 24 anni Hrvoje Ćustić.[9]
Convocato come titolare per il campionato d'Europa 2016 in Francia,[10] nella manifestazione continentale è stato protagonista soprattutto nella partita vinta 2-1 contro la Spagna, valida per definire le gerarchie del gruppo D, con una parata sul calcio di rigore di Sergio Ramos, concesso dall'arbitro al 72', con il risultato ancora sull'1-1.[11]
Titolare anche in occasione del campionato del mondo 2018 in Russia, para tre tiri di rigore nell'ottavo contro la Danimarca, portando la sua nazionale ai quarti di finale[12] e producendosi in un exploit che prima di lui era riuscito soltanto a Ricardo Pereira in un Portogallo-Inghilterra del 2006.[13] Dopo aver vinto ai rigori contro la Russia e ai tempi supplementari contro l'Inghilterra per 2-1, la Croazia viene sconfitta in finale 4-2 dalla Francia.
Il 15 agosto 2018 annuncia il suo ritiro dalla rappresentativa nazionale.[14]