The Aquile took the lead shortly after halftime when Manuel Lazzari raced clear to meet Joaquin Correa’s pass and fire in via a deflection.
Spezia hit back through a magnificent Daniele Verde effort midway through the second half before Felipe Caicedo scored a last gasp penalty to secure victory. The win was marred by red cards to Lazzari and Correa in stoppage time though, leaving the hosts with nine men.
Lazio had enjoyed the best chances throughout the match, including two good opportunities for Correa and Lazzari slicing wide with Spezia Jeroen Zoet caught out of possession.
However, the Biancoceleste finally found the opener through Lazzari, as a blistering run through the middle fashioned space for him to break the deadlock.
Spezia were level in some style though, with former Roma winger Verde meeting an Emmanuel Gyasi cross with a wonderful bicycle kick.
With just minutes remaining though, Lazio were awarded a penalty after a VAR check when the ball clipped the arm of Riccardo Marchizza. Caicedo made no mistake from the spot to hand the Aquile a crucial victory in the battle for Champions League qualification.
Deep into stoppage time Lazzari went from hero to villain though, as he reacted badly to a strong Kevin Agudelo tackle and was dismissed for shoving the Colombian. He was then joined by Correa in being dismissed, with the midfielder clipping Lucien Agoume and earning a second yellow card as Lazio finished with nine men.