Gaćinović verruilde in 2010 de jeugd van FK Leotar voor die van FK Vojvodina. Hier debuteerde hij op 19 maart 2013 in het eerste elftal, tijdens een wedstrijd in de Servische Superliga thuis tegen FK Donji Srem.[3] Hij maakte op 18 mei 2014 zijn eerste doelpunt in het betaald voetbal, tegen FK Radnički Niš. Gaćinović speelde in zijn eerste seizoen bij de senioren vijf wedstrijden en maakte daarin één doelpunt.[4] Hij scoorde op 7 december 2014 voor het eerst twee keer in één wedstrijd, uit tegen Radnički Kragujevac.[4] Gaćinović won op 7 maart 2014 de beker van Servië met Vojvodina door de finale van het toernooi met 2-0 te winnen van FK Jagodina. Hij kwam die dag zelf in de zestigste minuut in het veld als vervanger van Marko Poletanović.
Gaćinović tekende in augustus 2015 een contract tot medio 2019 bij Eintracht Frankfurt, de nummer negen van de Bundesliga in het voorgaande seizoen.[5] Gaćinović maakte deel uit van de ploeg van Eintracht Frankfurt, die op zaterdag 19 mei 2018 de DFB-Pokal won door in de finale FC Bayern München met 3–1 te verslaan. Het was de eerste grote prijs voor de club in dertig jaar.[6] In augustus 2020 transfereerde hij naar TSG 1899 Hoffenheim.
Gaćinović kwam uit voor Bosnië –17, voordat hij besloot om voor Servië –18 uit te komen. Op het EK voor spelers onder 19 jaar in 2013 scoorde hij de gelijkmaker in de halve finale tegen Portugal –19. Servië won de wedstrijd na strafschoppen, waardoor het de finale mocht spelen tegen Frankrijk –19.[7] In die finale maakte Andrija Luković het enige doelpunt, waardoor Servië Europees kampioen –19 werd.[8] Gaćinović won twee jaar later met een selectie generatiegenoten uit zijn geboorteland ook het WK -20 van 2015. Gaćinović debuteerde op 24 maart 2017 in het Servisch voetbalelftal, toen hij in een WK-kwalificatiewedstrijd in en tegen Georgië na 81 minuten inviel voor Filip Kostić. Vijf minuten later bepaalde hij de eindstand op 1-3 in het voordeel van de ploeg van bondscoach Slavoljub Muslin.