Mandragora stroomde in 2014 door vanuit de jeugd van Genoa CFC. Hiervoor debuteerde hij op 29 oktober 2014 in de Serie A, thuis tegen Juventus. Mandragora mocht in de basiself beginnen en werd na 69 minuten vervangen door Juraj Kucka. Genoa won met 1–0, nadat invaller Luca Antonini in de blessuretijd het winnende doelpunt maakte.[2] Mandragora kwam in zijn eerste seizoen tot vijf wedstrijden in de Serie A. Genoa verhuurde hem in juli 2015 aan Pescara, op dat moment actief in de Serie B. Hier was hij basisspeler en kwam hij vaker in actie. Juventus nam hem in januari 2016 over van Genoa, maar liet hem het seizoen afmaken bij Pescara. Meteen daarna speelde hij een jaar op huurbasis voor Crotone, in de Serie A.
Mandragora verruilde Juventus in juli 2018 definitief voor Udinese. Hij werd hier meteen basisspeler. Juventus kocht hem in oktober 2020 terug, maar liet hem nog tot januari 2021 op huurbasis bij Udinese spelen. Een gescheurde kruisband kostte hem dat jaar alleen vijf maanden om te herstellen. Net als tijdens de eerste keer dat hij onder contract stond bij Juventus, zag Mandragora Turijn ook deze keer zelden. Een dag na zijn terugkomst van Udinese, vertrok hij in februari 2021 voor anderhalf jaar op huurbasis naar Torino. Mandragora verruilde Juventus in juli 2022 definitief voor Fiorentina. Hiermee bereikte hij in 2022/23 zowel de finale van de Conference League als die van de Coppa Italia.[3]
Mandragora kwam uit voor verschillende Italiaanse nationale jeugdelftallen. Hij werd met Italië –20 derde op het WK –20 van 2017 en nam met Italië –21 deel aan het EK –21 van 2019. Mandragora debuteerde in 2018 in het Italiaans voetbalelftal, tijdens een met 3–1 verloren oefeninterland in en tegen Frankrijk.