Jako šestiletý uprchl s rodinou z válkou zmítané Jugoslávie do Německa, kde začal v Ditzingenu hrát fotbal. Po válce se vrátil a v nastartované fotbalové kariéře už pokračoval. Z rodného Slavjanského Brodu odešel v roce 2005 do NK Záhřeb, po dvou letech přestoupil do Dynama Záhřeb, se kterým okusil Ligu mistrů a v sezoně 2008-9 se stal nejlepším střelcem chorvatské ligy. Od roku 2010 hrál dvě sezony za Wolfsburg, pak zamířil do Bayernu. S Bayernem vyhrál Ligu mistrů 2013, ve finále proti Dortmundu dal úvodní gól. Zahrál si na Euro 2012 a 2016 i na MS 2014, po světovém šampionátu přestoupil do Atlétika Madrid, které o rok později vyměnil za Juventus.