Grujić speelde in de jeugd voor Rode Ster Belgrado. Hiervoor debuteerde hij op 26 mei 2013 in de Superliga, tegen FK Vojvodina.[2] Nadat hij gedurende het seizoen 2013/14 niet in actie kwam in het eerste, verhuurde Rode Ster hem in september 2014 voor vier maanden aan FK Kolubara, op dat moment actief in de Prva Liga. Tijdens het seizoen 2014/15 speelde Grujić ook negen competitieduels voor Rode Ster. Hij maakte op 26 september 2015 zijn eerste competitietreffer, tegen Novi Pazar.[3]
Grujić tekende in januari 2016 bij Liverpool, dat circa €6.000.000,- voor hem betaalde aan Rode Ster.[4] De Engelse club liet hem het lopende seizoen nog afmaken bij zijn oude club. In de anderhalf jaar die volgden, lukte het Grujić niet om door te breken bij Liverpool. Dat verhuurde hem in januari 2018 voor een halfjaar aan Cardiff City en in augustus 2018 voor een jaar aan Hertha BSC. Liverpool en Hertha verlengden deze huurovereenkomst in juli 2019 met nog twaalf maanden. In oktober 2020 werd Grujić verhuurd aan FC Porto.
Grujić kwam uit voor meerdere Servische nationale jeugdelftallen. Hij maakte deel uit van de Servische selectie die onder leiding van bondscoach Mladen Krstajić deelnam aan de WK-eindronde 2018 in Rusland. Daar sneuvelde de ploeg in de voorronde na een overwinning op Costa Rica (1–0) en nederlagen tegen achtereenvolgens Zwitserland (1–2) en Brazilië (0–2). Grujić kwam in geen van de drie WK-duels in actie voor zijn vaderland.