Failure to seal maximum points at Stadio Alberto Picco would have seen the Bianconeri go five games without a victory at the start of an Italian top-flight season for the first time since 1955-1956.
Massimiliano Allegri's side went ahead through Moise Kean's first goal since he rejoined his boyhood club from Everton, yet Spezia stormed back through Emmanuel Gyasi and Janis Antiste either side of half-time.
Federico Chiesa restored parity with a fine goal, though, before De Ligt ensured a much-needed first win of the campaign with 18 minutes remaining.
The Bianconeri had deservedly taken the lead shortly before the half-hour mark, with Kean collecting Adrien Rabiot's knockdown and firing in off Jeroen Zoet's right-hand post from 18 yards.
It took the hosts just five minutes to respond, however, as Gyasi cut in from the left and fired across Wojciech Szczesny courtesy of a slight deflection.
Paulo Dybala forced a fingertip save from Zoet soon after – one of 11 first-half Juve attempts to Spezia's two – but the visitors fell behind four minutes after the interval when Antiste jinked inside Leonardo Bonucci after a swift counter-attack and clipped past Szczesny.
Zoet denied Kean and Dybala, as Juve desperately tried to claw its way back into the game, and the pressure told in the 66th minute when Chiesa fired in after superbly finding his way through the Spezia defence.
De Ligt then lifted some of the clouds that had begun to gather over the Turin giant, powering past Zoet after a corner had fallen kindly to him, much to the relief of Allegri.