Kalinić is afkomstig uit de jeugdopleiding van HNK Hajduk Split, waar hij ook zijn eerste jaren in het betaald voetbal speelde. Na vier seizoenen vertrok hij naar Blackburn Rovers, dat circa veertien miljoen euro voor hem betaalde aan Hajduk.[1] Hij speelde twee seizoenen met de Engelse club in de Premier League, maar functioneerde niet naar volle tevredenheid van zijn werkgever. Kalinić vertrok op 11 augustus 2011 naar Dnipro Dnipropetrovsk.[2] Hij maakte in zijn eerste wedstrijd voor de club ook zijn eerste goal, tegen de regerend en latere kampioen Sjachtar Donetsk (3–1 verlies). Hij kreeg die wedstrijd tevens zijn eerste rode kaart.[3] Kalinić speelde ruim drie seizoenen voor Dnipro Dnipropetrovsk, met als sportief hoogtepunt een tweede plaats in de Vysjtsja Liha in het seizoen 2013/14. Ook behaalde hij de finale van de UEFA Europa League 2014/15 met de club. Daarin maakte hij zelf het eerste doelpunt, maar tegenstander Sevilla won de wedstrijd met 2–3. Door dit optreden wekte hij de interesse van ACF Fiorentina uit de Serie A. Daar speelde hij bijna 70 competitiewedstrijden, voor hij in 2017 aan AC Milan verhuurd werd. Kalinić tekende in augustus 2018 een contract tot medio 2021 bij Atlético Madrid, dat circa €15.000.000,- voor hem betaalde aan AC Milan. Dat was hetzelfde bedrag als dat de Italiaanse club een maand eerder neerlegde om hem na een jaar huur definitief over te nemen van Fiorentina. Bij Atlético maakte Kalinić met twee doelpunten uit zeventien wedstrijden minder indruk dan in Italië, waardoor hij in het seizoen 2019/20 weer op huurbasis mocht vertrekken. Kalinić werd verhuurd aan AS Roma. In 2020 werd hij overgenomen door Hellas Verona.
Op 4 juni 2012 werd Kalinić alsnog opgeroepen voor de Kroatische selectie op het Europees kampioenschap 2012 in Oekraïne en Polen, nadat Ivica Olić een dijbeenblessure opliep tijdens een vriendschappelijke wedstrijd tegen Noorwegen.[4]
Hij werd opgeroepen in mei 2015 door de Kroatische bondscoach voor de vriendschappelijke wedstrijd tegen Gibraltar en de EK-kwalificatiewedstrijd tegen Italië op respectievelijk 7 juni en 12 juni 2015.[5] Dit was zijn eerste oproep voor de Vatreni voor het eerst in bijna twee jaar. Tegen Gibraltar kwam hij als wissel in het spel. Tegen Bulgarije in oktober 2015 trof Kalinić het doel voor Kroatië voor het eerst weer na meer dan twee jaar. Kalinić maakte ook deel uit van de definitieve selectie van Kroatië voor het Europees kampioenschap in Frankrijk.[6] Kroatië werd op 26 juni in de achtste finale tegen Portugal uitgeschakeld na een doelpunt van Ricardo Quaresma in de verlenging.
Bondscoach Zlatko Dalić nam Kalinić ook mee naar het WK 2018. Nadat hij na een warming-up weigerde in te vallen in het eerste groepsduel van Kroatië, tegen Nigeria (2-0), stuurde Dalić hem naar huis. Volgens Kalinić wilde hij niet spelen vanwege een rugblessure. Dalić verklaarde later dat dit de tweede keer was, nadat hetzelfde was gebeurd tijdens een oefeninterland tegen Brazilië.[7]