Народився 25 березня1993 року в місті Фоліньйо. Починав займатися футболом у місцевій команді «Віртус Фоліньйо», а 2007 року перейшов до академії «Сієни». У 2017 році гравця запросили до клубної структури «Ювентуса».
У дорослому футболі дебютував 2012 року в друголіговому «Емполі», куди був відданий в оренду для набуття досвіду. Загалом протягом перших шести років своєї кар'єри встиг пограти на умовах оренди з «Ювентуса» за цілу низку італійських команд, здебільшого друголігових — «Віртус Ланчано», «Сієну», «Віченцу» та «Перуджу».
Перший досвід виступів у Серії A здобув у сезоні 2014/15, першу половину якого він провів в оренді в «Аталанті». До цієї ж команди його було віддано в оренду влітку 2016 року. Цього разу Спінаццолі виборов собі стабільне місце у її основному складі.
Повернувшись із чергової оренди влітку 2018 року до «Ювентуса», гравець, який вже мав не лише досвід стабільних виступів в елітному італійському дивізіоні але й досвід виступів за національну збірну Італії, був внесений до заявки «старої синьйори» на сезон 2018/19, значну частину якого був змушений пропустити, відновлюючись від травми.
Влітку 2018 року перейшов до столичної «Роми» в рамках угоди, що передбачала перехід Луки Пеллегріні у зворотньому напрямку і за якою трансферна вартість Спінаццоли була визначена у майже 30 мільйонів євро. 2022 року Спінаццола допоміг команді виграти дебютний розіграш Ліги конференцій, зігравши в тому числі і у фінальному матчі проти «Феєнорда» (1:0)[2].
10 липня 2024 року на правах вільного агента перейшов до «Наполі».
Навесні 2017 року дебютував в офіційних матчах у складі національної збірної Італії. Протягом 2017 року досить регулярно виходив на поле за національну команду. Після тривалої перерви, пов'язаної із травмою, з початку 2019 року знову повернувся до «обойми» головної команди Італії.
У червні 2021 року Леонардо був запрошений головним тренером збірної Італії для участі в чемпіонаті Європи 2020 року. Включений до стартового складу матчу-відкриття турніру проти збірної Туреччини (3:0), за підсумками якого був визнаний найкращим гравцем матчу[3]. 26 червня 2021 року в матчі 1/8 фіналу зі збірною Австрії (2:1) Спінаццола вдруге був визнаний найкращим гравцем матчу. 2 липня 2021 року в переможному матчі 1/4 фіналу проти збірної Бельгії (2:1) Леонардо на 79-й хвилині отримав розрив ахіллового сухожилля, через що був змушений покинути поле на ношах[4]. 5 липня футболісту була зроблена операція. Незважаючи на відсутність Спінаццоли, збірна Італії змогла пройти збірну Іспанії у півфіналі турніру і обіграти господарку поля збірну Англії у фіналі, вигравши трофей, а Спінаццола був включений до символічної збірної турніру[5].