Dimarco speelde vanaf 2004 in de jeugdopleiding van Internazionale. Op 11 december 2014 mocht de linksback zijn debuut maken voor het eerste elftal, toen in de UEFA Europa League met 0–0 gelijkgespeeld werd tegen FK Qarabağ. Tijdens dat duel viel hij zes minuten voor tijd in voor Danilo D'Ambrosio. Ten tijde van het duel had Inter zich reeds geplaatst voor de volgende ronde.[1] In de competitie beleefde de verdediger zijn vuurdoop op de laatste speelronde op 31 mei 2015, toen met 4–3 van Empoli werd gewonnen. Tijdens dit duel mocht Dimarco een minuut voor tijd het veld betreden als vervanger van aanvaller Rodrigo Palacio.[2]
In januari 2016 werd de vleugelverdediger voor een half jaar gehuurd door Ascoli.[3] Na dit halve seizoen vertrok Dimarco opnieuw op huurbasis; nu nam Empoli hem over voor het seizoen 2016/17. De club dwong tevens een optie tot koop af.[4] In dit seizoen speelde hij twaalf wedstrijden voor Empoli. FC Sion nam hem in de zomer van 2017 voor vier miljoen euro over van Inter; in Zwitserland tekende hij voor vier seizoenen.[5]
In Zwitserland speelde hij negen competitiewedstrijden, waarna Internazionale hem voor zeven miljoen euro terughaalde naar Milaan.[6] Hij werd direct voor één seizoen verhuurd aan Parma, dat ook Alessandro Bastoni en Jonathan Biabiany op huurbasis overnam.[7] In januari 2020 werd Dimarco voor anderhalf seizoen verhuurd aan Hellas Verona.[8]
Dimarco maakte deel uit van alle Italiaanse nationale jeugdselecties vanaf Italië –15. Hij bereikte met Italië –17 de finale van het EK –17 van 2013 en de achtste finale van het WK –17 van 2013. Met Italië –19 haalde hij de finale van het EK –19 van 2016. Dimarco werd met Italië –20 derde op het WK –20 van 2017 en nam met Italië –21 deel aan het EK –21 van 2019.