Alvaro Morata scored his first penalty for Juve since February 2016 to put last season's runner up, without the rested Cristiano Ronaldo, ahead in the opening stages.
Frabotta's strike was the highlight, however – his wonderful finish handing Andrea Pirlo's team complete control.
Aaron Ramsey squandered two good chances to add to Juve's lead, though it was an error in the SPAL defence which enabled Dejan Kulusevski and Federico Chiesa to wrap things up.
Frabotta lashed a low effort across the face of goal as Juve hunted an early opener, and it duly came in the 16th minute.
Adrien Rabiot was booked for simulation after he went down under Francesco Vicari's challenge, yet the referee changed his decision after consulting VAR, and Morata sent Etrit Berisha the wrong way from 12 yards.
Morata turned provider eight minutes later, with Kulusevski stinging Berisha's palms, before Ramsey hit the side netting.
Berisha was picking the ball out of his net again a minute later, though – Frabotta thumping in a brilliant first-time strike from the edge of the area.
SPAL veteran Sergio Floccari had an immediate chance to haul one back, but sliced wide of the left-hand upright.
Frabotta almost turned provider with a wicked cross early in the second half, though Ramsey failed to turn it home.
Ramsey found his route to goal blocked by Berisha prior to the hour, while Kulusevski – who had teed up Frabotta's goal at the end of an impressive run – continued to run SPAL ragged.
Kulusevski had the goal his performance deserved with 12 minutes remaining, the forward coolly slotting home after Morata had pounced on Nenad Tomovic's mistake.
And substitute Chiesa added further gloss in the final minute of stoppage time when he rounded Berisha to tuck in.