* Gol dan kemunculan untuk kelab senior hanya untuk liga domestik dan tepat pada 25 April 2021 ‡ Gol dan kemunculan pasukan kebangsaan hingga 11 Jun 2021
Spinazzola memulakan kariernya di akademi Siena.[3] Pada tahun 2010, beliau telah menyertai Juventus secara pinjaman dan dimasukkan ke dalam skuad Primavera. Pada Jun 2012, Juventus menandatangani pemilikan bersama dengan nilai €400,000.
Pada 5 Julai 2012, Spinazzola bersama Filippo Boniperti telah dipinjam ke kelab Serie B, Empoli selama satu musim.[4] Pada 1 September, beliau telah beraksi dalam perlawanan sulungnya untuk Empoli ketika menentang Novara.[5]
Spinazzola telah menjaringkan gol pertamanya pada 15 September tetapi pasukannya akhirnya tewas ketika menentang Livorno.[6] Selepas hanya beraksi sebanyak tujuh perlawanan, pinjamannya telah ditamatkan dan beliau kemudiannya dipinjamkan ke Virtus Lanciano pada Januari 2013.[7]
Spinazzola hanya tampil dalam tiga perlawanan bersama Virtus dan ketiga-tiga penampilan tersebut hanya sebagai pemain gantian. Pada 10 Ogos 2013, beliau sekali lagi dipinjamkan dan kali ini ke kelab lamanya, Siena.[8] Beliau seterusnya diberi banyak peluang beraksi, di mana beliau telah melakukan 24 penampilan dan menjaringkan satu gol.
Pada Jun 2014, perjanjian antara Siena dan Juventus diperbaharui lagi. Namun selepas Siena telah muflis pada Julai, Juventus memperoleh baki 50% hak ke atas Spinazzola dari Siena secara percuma.
Pada 11 Ogos 2014, Spinazzola menyertai kelab Serie A, Atalanta sebagai pemain pinjaman.[9] Pada 23 Ogos, beliau telah melakukan penampilan sulungnya untuk Atalanta dan juga menjaringkan gol dalam perlawanan tersebut ketika menentang Pisa pada aksi Coppa Italia.[10][11] Spinazzola melakukan penampilan sulungnya di Serie A pada 31 Ogos selepas beliau menggantikan Marcelo Estigarribia pada minit ke-82 ketika menentang Verona.[12] Selepas dipinjamkan ke Vicenza dan Perugia, Spinazzola kembali ke Atalanta pada Julai 2016.
Selepas menamatkan dua musim bersama Atalanta, Spinazzola kembali ke Juventus pada musim panas 2018.[13] Selepas pulih daripada kecederaan jangka panjang dialaminya, Spinazzola melakukan penampilan sulungnya untuk Juventus pada 12 Januari 2019 ketika menentang Bologna dalam saingan Coppa Italia.[14] Beliau melakukan penampilan pertama dalam aksi Liga Juara-Juara Eropah pada 12 Mac ketika membantu pasukannya mengatasi Atlético Madrid 3–0 dalam pusingan kalah mati sekali gus memastikan Juventus untuk meneruskan kemaraan setelah menang 3–2 menerusi agregat.[15][16]
Roma
Pada 1 Julai 2019, Leonardo Spinazzola berpindah ke Roma dari Juventus dengan perpindahan yang bernilai €29.5 juta. Beliau seterusnya menandantangani kontrak selama empat tahun bersama Roma. Sementara itu, Luca Pellegrini berpindah dalam arah yang berlawanan.[17][18]
Kerjaya antarabangsa
Pada 28 Mac 2017, Spinazzola bersama empat pemain lain telah melakukan penampilan sulungnya untuk pasukan kebangsaan Itali dalam perlawanan persahabatan menentang Belanda yang berkesudahan kemenangan 2–1 berpihak kepada Itali.
^"Allievi Nazionali" (dalam bahasa Italian). A.C. Siena. Diarkibkan daripada yang asal pada 13 November 2008. Dicapai pada 25 September 2017.CS1 maint: unfit URL (link) CS1 maint: unrecognized language (link)
^"Maxi scambio tra Juventus ed Empoli" [Mega exchange between Juventus and Empoli] (dalam bahasa Italian). Spazio Juve. 5 Julai 2012. Diarkibkan daripada yang asal pada 10 November 2014.CS1 maint: unrecognized language (link)
^"Leonardo Spinazzola all'Atalanta" (dalam bahasa Italian). Atalanta. 7 Julai 2016. Diarkibkan daripada yang asal pada 28 Ogos 2016. Dicapai pada 1 Julai 2019.CS1 maint: unrecognized language (link)