Leonardo Spinazzola urodził się w Foligno w Umbrii 25 marca 1983 roku. Piłka nożna zawsze była jego pasją. „Chciałem dołączyć do zespołu Virtus Foligno, gdy miałem cztery lata, ale musiałem poczekać do szóstego roku życia, zanim pozwolono mi na to”, powiedział niedawno Corriere della Sera.
Treningi piłkarskie rozpoczął w Virtusie Foligno w wieku 6 lat. W wieku 14 lat trafił do AC Siena, a w wieku 17 lat – do Juventusu, do którego był wypożyczony. W czerwcu 2012 został wykupiony przez Juventus, jednakże Siena wciąż miała połowę praw do zawodnika. W lipcu 2012 został wypożyczony do Empoli FC. W styczniu 2013 został wypożyczony do Virtusu Lanciano, a w sierpniu 2013 do AC Siena. W sierpniu 2014 został wypożyczony do Atalanty BC. W lutym 2015 został wypożyczony do Vicenzy Calcio, a w lipcu 2015 do Perugii Calcio. W lipcu 2016 został wypożyczony na dwa sezony do Atalanty BC.
Młodzieżowy reprezentant Włoch. W dorosłej reprezentacji zadebiutował 28 marca 2017 w wygranym 2:1 meczu towarzyskim z Holandią. 2 Lipca 2021 podczas wygranego meczu z Belgią w ramach Euro 2020 doznał zerwania ścięgna Achillesa boisko opuścił na noszach.