Juve had the chance to open up a seven-point gap between themselves and title rivals Napoli, who are in action against Genoa on Sunday.
As expected, SPAL spent much of the match on the back foot, with Juventus creating their first opening after just 11 minutes when Douglas Costa's mesmerising solo run opened up space for Alex Sandro, who could not add the finishing touch.
Paulo Dybala was the next to come close for the visitors when he found space to shoot on his favoured left foot, but his curling effort went narrowly wide of the target.
The pressure continued to grow on the hosts, but Juventus struggled to turn their possession into chances and it wasn't until the stroke of half time that they came close again as Dybala fired a free kick just over.
It was a similar story in the second half as again SPAL managed to cling on, despite both Costa and Dybala threatening in the opening 10 minutes after the restart.
The chances soon dried up again, though, and there was cause for more frustration for Juve with just under 10 minutes remaining when Giorgio Chiellini was forced off through injury.
Sandro tested Alex Meret once more with two minutes of normal time remaining, but SPAL kept the league leaders at bay to claim an important point which lifts them up to 17th in the Serie A table.
Juve, meanwhile, extend their unbeaten run to 24 games across all competitions to move five points clear of Napoli, although that gap could be slashed when Napoli play their game in hand on Sunday.
SPAL (3-5-2): Meret; Cionek, Vicari, Felipe; Lazzari, Kurtic, Schiattarella, Grassi, Costa (Simic, 92'); Paloschi (Luiz, 82'), Antenucci (Floccari, 89')
JUVENTUS (4-2-3-1): Buffon; De Sciglio, Rugani, Chiellini (Barzagli, 81'), Asamoah (Mandzukic, 64'); Pjanic, Matuidi (Bentacur, 84'), Costa, Dybala, Sandro; Higuain