Astori komt uit de jeugdopleiding vanAC Milan. Die club leende hem in 2006 uit aanPergocrema en in 2007 aanCremonese. In juli 2008 legdeCagliari ongeveer één miljoen euro op tafel om de helft van de rechten van Astori te kopen.[1] Hij maakte zijn debuut voor Cagliari op 14 september 2008 tegenSiena. Cagliari verloor met 2–0 en Astori kwam in de drieënvijftigste minuut in het veld voorMichele Canini.[2] Het verblijf van Astori bij Cagliari werd in 2009 verlengd tot medio 2010.[3] Op 31 januari 2010 maakte de verdediger zijn eerste doelpunt voor Cagliari, in een thuiswedstrijd tegenFiorentina (2–2).[4] In de zomer van 2010 was AC Milan, de club waar Astori de jeugdopleiding doorliep, naar verluidt geïnteresseerd om de helft van de rechten terug te kopen. Zelf gaf hij aan interesse te hebben in een terugkeer naar Milaan.[5] In plaats van een terugkeer naar Milaan, werd Astori in 2011 definitief overgenomen door Cagliari.[6] Een jaar later kon de centrumverdediger naarSpartak Moskou vertrekken, maar hij koos ervoor bij zijn club te blijven.[7]
In juli 2014 verlengde hij zijn contract tot medio 2017.[8] Een dag na het verlengen van zijn verbintenis, huurdeAS Roma de verdediger voor één seizoen met een optie tot koop. Bij de Romeinse club moest hij de vervanger worden van de naarBayern München vertrokkenMedhi Benatia.[9] Roma betaalde twee miljoen voor de huur en een eventuele aankoop zou zes miljoen kosten.[10] Voor Roma debuteerde hij op 30 augustus 2014, toen met 2–0 gewonnen werd vanFiorentina. De Italiaan mocht in de basis beginnen van coachRudi García en hij vormde een duo met de GriekseKostas Manolas.[11] Op 6 januari 2015 werd met 0–1 gewonnen op bezoek bijUdinese. Astori opende na zeventien minuten de score op aangeven vanFrancesco Totti. Hiermee tekende hij dus ook voor het enige doelpunt. Na afloop van de wedstrijd was er ophef over het doelpunt; videobeelden zouden tonen dat de bal niet geheel de doellijn had gepasseerd.[12] Astori speelde dertig officiële wedstrijden voor AS Roma. De Romeinse club besloot de verdediger niet definitief over te nemen.[13]
Na zijn terugkeer bij Cagliari, verhuurde de club Astori in augustus 2015 opnieuw; nu namFiorentina hem over voor de duur van één seizoen. Ook verplichtte de Florentijnse club zich om hem daarna definitief in te lijven.[14] Na een seizoen op huurbasis in Florence te spelen, zou hij voor drieënhalf miljoen overgenomen worden en daarbij tekende hij een contract tot medio 2019.[15] Zijn eerste wedstrijd voorLa Viola speelde hij op 23 augustus 2015, toen Fiorentina in het eigen stadion met 2–0 te sterk was voorAC Milan. Astori begon op de reservebank, maar coachPaulo Sousa liet hem in de negenenvijftigste minuut invallen voorFacundo Roncaglia. De rest van de tweede helft vormde hij een duo centraal achterin metNenad Tomović.[16]
Astori werd op 4 maart 2018 dood aangetroffen in zijn hotelkamer inUdine. Fiorentina maakte op 6 maart 2018, net alsCagliari, bekend dat er als eerbetoon aan Astori nooit meer iemand anders met rugnummer 13 zou spelen voor de club.
In augustus 2010 werd Astori door bondscoachCesare Prandelli voor het eerst opgeroepen voor hetItaliaans voetbalelftal, voor een oefenwedstrijd tegenIvoorkust.[18] Tijdens die wedstrijd kwam de verdediger niet in actie, maar op 29 maart 2011 kwam hij wel tot zijn debuut. Op die dag werd met 0–2 gewonnen vanOekraïne door doelpunten vanGiuseppe Rossi enAlessandro Matri. In de zeventiende minuut mocht hij invallen voorGiorgio Chiellini. Al binnen één minuut toonde scheidsrechterAleksej Nikolajev hem een gele kaart. In de vierenzeventigste minuut kreeg Astori zijn tweede gele kaart. Naast de centrumverdediger maakten ook Matri (Juventus),Daniele Gastaldello (Sampdoria) enMarco Parolo (Cesena) hun debuut.[19]
Op 15 augustus 2012 speelde hij zijn tweede interland voor Italië. In een met 1–2 verloren oefenduel metEngeland speelde hij de volledige negentig minuten mee. Gedurende deze wedstrijd vormde Astori een duo centraal achterin metAngelo Ogbonna.[20] In 2013 werd hij opgenomen in de selectie voor deFIFA Confederations Cup inBrazilië. Hij speelde in één wedstrijd, waarin hij tevens zijn eerste interlanddoelpunt maakte: in de 24e minuut schoot hij Italië op een 0–1-voorsprong tegenUruguay. Hij werd in de zesennegentigste minuut vervangen voorLeonardo Bonucci. Uiteindelijk werd het 2–2 en Italië won de strafschoppenreeks.[21]