Krunić stroomde door vanuit de jeugd van Sutjeska Foča, uit zijn geboorteplaats. Hiervoor debuteerde hij in het seizoen 2012/13 in de Prva Liga. Hij trok er de aandacht van Donji Srem. Dat legde hem in januari 2013 vast. Krunić groeide uit tot basisspeler en speelde in de volgende anderhalf jaar veertig wedstrijden in het Superliga. Zijn ploeggenoten en hij bivakkeerden daarbij in het rechterrijtje van de competitie.
Krunić tekende in augustus 2014 bij Hellas Verona, maar speelde nooit een wedstrijd voor de club. De Italianen verhuurden hem een maand na zijn komst voor een half seizoen terug aan Donji Srem en lieten hem na zijn terugkomst transfervrij vertrekken naar Borac Čačak. Krunić tekende in juli 2015 vervolgens transfervrij bij Empoli. Hij was in zijn eerste seizoen voornamelijk invaller, maar groeide in 2016/17 uit tot basisspeler bij de Noord-Italiaanse club. Hij degradeerde dat jaar met Empoli uit de Serie A, maar keerde twaalf maanden later daarin terug door kampioen te worden in de Serie B. Krunić speelde in vier seizoenen uiteindelijk 116 competitiewedstrijden voor Empoli, waarvan 101 vanaf de aftrap.
Krunić tekende in juli 2019 bij AC Milan, dat circa €8.000.000,- voor hem betaalde aan Empoli.[2] In Milaan werd hij vooral invaller, hoewel zijn aantal basisplaatsen vanaf 2021/22 wel groter werd. Krunić speelde 28 competitieronden (waarvan 15 als basisspeler) in het Milan dat in 2022 voor het eerst in elf jaar weer kampioen van de Serie A werd. In datzelfde seizoen kwam uit ook voor het eerst in zijn carrière uit in de Champions League, tegen FC Porto, Atlético Madrid en Liverpool. Hij bereikte in 2022/23 de halve finale van dat toernooi met Milan. Stadgenoot Internazionale versperde daarin de weg naar de finale.
Krunić debuteerde op 3 juni 2016 in het voetbalelftal van Bosnië en Herzegovina, in een oefeninterland tegen Denemarken. Hij viel die dag een minuut voor het einde van de officiële speeltijd in voor Milan Đurić. Na nog een paar interlands in de volgende jaren, ging hij vanaf september 2018 op regelmatige basis voor het Bosnische nationale team spelen. Krunić kwam op 23 maart 2019 voor het eerst tot scoren. Hij kopte zijn team toen op 1–0 in een met 2–1 gewonnen EK-kwalificatiewedstrijd tegen Armenië. Bosnië plaatste zich in die reeks voor de play-offs, maar verloor daarin van Noord-Ierland.