È un regista, ma può giocare anche come interno di centrocampo.[2] Dotato di visione di gioco e potenza. Abile nel recupero palla e nei passaggi filtranti con il quale riesce ad effettuare molti assist. Ha un buon controllo di palla. Bravo anche nelle conclusioni dalla lunga distanza.[3]
Carriera
Club
Esordi in Croazia e Dinamo Zagabria
Cresciuto nelle giovanili del NK Zagabria, Milan Badelj approda a 17 anni alla Dinamo Zagabria nel 2007. Disputa una stagione nella squadra B e poi il prestito alla Lokomotiva Zagabria, società satellite. L'anno dopo torna alla Dinamo Zagabria per sostituire Luka Modrić.[4] Al suo ritorno alla NK Zagabria si conquista subito il posto da titolare in prima squadra, disputando nella stagione 2008-09 48 partite con 6 reti.
Amburgo
Nell'estate del 2012 viene acquistato, per 4 milioni di euro, dall'Amburgo dove ha militato per due stagioni collezionando 62 presenze in Bundesliga e 2 gol. Il suo esordio contro il Wolfsburg nella sconfitta esterna per 2-0 il 1º settembre del 2012.
Fiorentina
Il 1º settembre 2014 si trasferisce a titolo definitivo alla Fiorentina[5] per 5 milioni di euro.[6] Esordisce in maglia viola il 18 settembre nella partita di Europa League Fiorentina-Guingamp (3-0), subentrando al 46' al posto di Borja Valero.[7]. L'esordio in campionato avviene il 21 settembre 2014 nella partita contro l'Atalanta, in cui viene schierato dal primo minuto. Nel girone di ritorno, dopo un girone d'andata interlocutorio, le sue prestazioni crescono,[8] diventando decisivo sia in Europa League che in campionato, dove chiude la stagione in crescendo. Il 31 maggio 2015, proprio nell'ultima gara, segna il suo primo gol in Serie A, fissando il punteggio sul 3-0, in Fiorentina-Chievo.[9]
Confermato nell'ossatura del centrocampo viola[10] anche all'avvio del suo secondo anno a Firenze, in Fiorentina-Udinese del 6 dicembre 2015 segna la sua prima rete stagionale con un particolare retroscena[11] in cui alla fine, a causa dell'involontarietà della deviazione di Kalinić, la Lega Calcio deve intervenire ufficialmente per riconoscergli la paternità del gol.[12]
Nel marzo 2018, in seguito alla tragica morte del compagno di squadra Davide Astori, diventa il nuovo capitano della formazione viola.[13][14] A fine stagione, con una lettera, dichiara di non voler rinnovare il contratto in scadenza con la Fiorentina.[15]
Lazio e prestito alla Fiorentina
Il 1º agosto 2018 si accorda da svincolato con la Lazio.[16] L'esordio arriva il 18 agosto successivo nella partita casalinga persa, per 1-2, contro il Napoli. La prima marcatura arriva il 17 febbraio 2019, portando in vantaggio i capitolini in casa del Genoa, che poi prevarrà per 2-1.[17] Con i capitolini conquista la Coppa Italia, scendendo in campo negli ultimi 5 minuti della semifinale di ritorno contro il Milan. In stagione ha fatto fatica a imporsi, anche a causa della fitta concorrenza a centrocampo.[18]
Dopo una stagione con la maglia della Lazio, il 5 agosto 2019 ritorna alla Fiorentina con la formula del prestito oneroso con diritto di riscatto.[19][20] Ritrova il gol il 20 dicembre, nella partita in casa con la Roma, persa per 1-4.[21] Quella è stata la sua unica rete in 22 presenze in campionato, in cui ha reso al di sotto delle aspettative.[18]
Genoa
Tornato alla Lazio, non rientrando nei piani della società il 16 settembre 2020 viene ceduto a titolo definitivo al Genoa.[22][23]
Con la maglia dei grifoni esordisce il 20 settembre, alla prima giornata di campionato giocata in casa contro il Crotone. Il 20 febbraio 2021 segna il suo primo gol in rossoblù, nella gara casalinga pareggiata 2-2 contro il Verona:[24] in quell'occasione, si distingue anche per la sua dedica a Davide Astori, suo amico e compagno di squadra alla Fiorentina, che era morto tre anni prima.[25]
Il 24 aprile 2022 torna a segnare dopo oltre un anno, realizzando il gol decisivo per la vittoria nella sfida-salvezza contro il Cagliari.[26] Con i rossoblù scende per la prima volta nella sua carriera in serie B, esordendovi il 14 agosto 2022 in Venezia-Genoa 1-2, e segnando la sua prima rete in questo torneo il 12 marzo 2023, decidendo la partita contro la Ternana.[27]
Il 7 luglio 2023, dopo avere ottenuto la promozione in A, diventa il nuovo capitano genoano; il 3 settembre seguente festeggia le 100 presenze complessive in maglia rossoblù.[28][29] Il 15 maggio 2024 rinnova con i rossoblù per un ulteriore anno, fino al 30 giugno 2025.[30]
Il 1º dicembre 2024, in occasione del match vinto 0-2 dal Genoa contro l'Udinese a Udine, diventa il calciatore croato con più presenze in Serie A, superando Marcelo Brozović.[31]
Nazionale
Ha collezionato 64 presenze nelle nazionali giovanili croate, realizzando 2 reti.
Le sue prestazioni nel massimo campionato croato hanno convinto Slaven Bilić a farlo debuttare con la nazionale croata il 23 maggio 2010, nella gara contro il Galles in cui ha giocato l'ultima parte della partita sostituendo Mario Mandžukić. Segna la sua prima rete contro Malta il 2 settembre 2011 in una gara valida per Euro 2012. Convocato per le fasi finali dell'Europeo non entrerà mai in campo. Stessa sorte per Brasile 2014, dove accompagna la squadra ai Mondiali senza però mettere piede in campo se non in sole tre gare delle qualificazioni.
Complici le buone prestazioni con la maglia della Fiorentina dalla fine dello stesso anno comincia ad essere schierato con più frequenza, giocando le ultime tre partite decisive delle qualificazioni al campionato europeo di calcio 2016. Convocato per gli Europei 2016 in Francia,[32] scende in campo in tutte e 4 le partite giocante dalla sua nazionale nel corso della manifestazione continentale.
Viene convocato anche per i Mondiali 2018,[33] dove parte titolare nella partita contro l'Islanda, partita vinta 2-1 e in cui ritrova il gol in Nazionale a quasi 7 anni di distanza dall'ultima volta.[34] Nel corso del torneo giocherà poi contro Danimarca (sbagliando un rigore)[35] agli ottavi e Inghilterra in semifinale, subentrando in entrambi i casi. Non gioca poi nella finale, persa dalla Croazia per 4-2 contro la Francia.