McGregor is afkomstig uit de jeugdopleiding van Celtic. In augustus 2013 werd hij uitgeleend aan Notts County, dat in de Engelse League One uitkomt. Hij maakte bij zijn debuut op 7 augustus 2013 in de League Cup tegen Fleetwood Town. Hij maakte twaalf doelpunten in 37 competitieduels.[2]
McGregor keerde in de zomer van 2014 terug bij de selectie van Celtic en speelde in het seizoen 2014/15 18 competitiewedstrijden, waarin hij tweemaal trefzeker was. Met Celtic won hij de Schotse landstitel en de Scottish League Cup dat seizoen. In negen van zijn eerste tien seizoenen won McGregor de titel. Bovendien won hij zesmaal de beker en zevenmaal de League Cup. In het seizoen 2021/22 werd hij uitgeroepen tot Speler van het Jaar bij Celtic.
Onder leiding van interim-bondscoach Malky Mackay maakte McGregor zijn debuut voor Schotland op donderdag 9 november2017 in de vriendschappelijke wedstrijd tegen Nederland (0-1). Hij moest in die wedstrijd na 87 minuten plaatsmaken voor collega-debutant Jason Cummings (Nottingham Forest FC). Andere debutanten namens de Schotten in die wedstrijd waren Ryan Jack (Rangers FC) en Ryan Christie (Aberdeen FC). McGregor werd op 7 juni 2024 door bondscoach Steve Clarke opgenomen in de Schotse selectie voor het EK 2024 in Duitsland.[4] Schotland werd in de groepsfase uitgeschakeld na nederlagen tegen Duitsland (5–1) en Hongarije (0–1) en een gelijkspel tegen Zwitserland (1–1). McGregor kwam iedere wedstrijd in actie.