Calafiori speelde in de jeugd van AS Roma. Voor die club maakte hij zijn debuut op 1 augustus 2020, toen thuis tegen Juventus gespeeld werd in de Serie A. Door een doelpunt van Gonzalo Higuaín kwam die club op voorsprong, maar door een doelpunt van Nikola Kalinić en twee van Diego Perotti won AS Roma met 1–3. Ricci mocht van coach Paulo Fonseca aan het duel beginnen als basisspeler en na een uur spelen werd hij gewisseld ten faveure van Bruno Peres.[1] Zijn eerste doelpunt volgde op 3 december 2020, toen hij in de Europa League tegen Young Boys scoorde. Dankzij Jean-Pierre Nsame kwamen de Zwitsers op voorsprong en voor rust maakte Borja Mayoral gelijk. Calafiori zette zijn ploeg veertien minuten na rust weer op voorsprong, waarna uiteindelijk met 3–1 gewonnen werd door een doelpunt van Edin Džeko.[2]
De verdediger werd in de winterstop van het seizoen 2021/22 voor een half jaar verhuurd aan Genoa.[3] Na deze verhuurperiode vertrok hij definitief uit Rome, toen FC Basel circa een miljoen euro voor hem betaalde en hem een contract voor drie jaar voorschotelde, met een optie op een jaar extra.[4] Na ruim een seizoen in Zwitserland keerde Calafiori voor circa vier miljoen euro terug naar Italië, waar hij voor vier jaar tekende bij Bologna.[5] Hij had gedurende het seizoen 2023/24 overwegend een basisplaats bij Bologna en met zijn club kwalificeerde hij zich voor de UEFA Champions League.
Calafiori stelde met zijn jaargang bij Bologna ook een plek veilig in de Italiaanse selectie voor het EK 2024. Na afloop van dat toernooi verkaste de verdediger voor een bedrag van circa vijfenveertig miljoen euro naar Arsenal. Bij de Londense club zette hij zijn handtekening onder een verbintenis voor de duur van vijf seizoenen.[6] Zijn Arsenal-debuut maakte hij op 24 augustus, in de Premier League tegen Aston Villa (0–2 zege). Tijdens de vijfde speelronde mocht Calafiori van coach Mikel Arteta voor het eerst in de basis beginnen. Tegen Manchester City kwam hij ook direct voor het eerst tot scoren; na een pass van Gabriel Martinelli schoot hij van buiten het zestienmetergebied raak. Het duel eindigde uiteindelijk in 2–2.[7]