Cheeky celebration: Sergio Floccari hits the winner for SPAL against Juventus . AFP/Isabella BONOTTO
Massimiliano Allegri’s side had needed just a point to claim a 35th Scudetto with a record six games to spare and Napoli a distant second.
Kean opened the scoring for the seven-time reigning champions when the 19-year-old stuck his foot out to direct a Joao Cancelo effort home after half an hour in Ferrara.
But Kevin Bonifazi (49) and Sergio Floccari (74) responded with precious goals which eased SPAL’s fight for top-flight football next season.
“Making records is very difficult, it takes energy and there is also Europe to concentrate on,” said Allegri, who rested key players including Cristiano Ronaldo ahead of next week’s Champions League decider against Ajax in Turin.
“If we had put all our regulars in it would have been easier to win it, but there is also the goal to obtain on Tuesday.”
Juventus have a 20-point advantage on Napoli and can still seal the title in record time on Sunday if Carlo Ancelotti’s side fail to win at bottom club Chievo.
Otherwise, they could win their eighth consecutive Scudetto next Saturday at home against Fiorentina.
Then they would match the previous best of winning the title with five games to spare achieved by Torino in 1947-1948, Fiorentina in 1955-1956 and Roberto Mancini’s Inter Milan in 2006-2007.
Allegri experimented with an eye towards the quarter-final, second leg game against Ajax after a 1-1 draw in Amsterdam.
Ronaldo was rested after returning from injury to score in the first leg against Ajax, with forwards Federico Bernardeschi and Mario Mandzukic also starting on the bench.
Mattia Perin replaced Wojciech Szczesny in the Juventus goal with Kean getting his second start alongside Paulo Dybala up front.
Cuadrado and Andrea Barzagli returned from lengthy injury lay-offs with young defender Paolo Gozzi, 17, and midfielder Grigoris Kastanos, 21, handed debuts.
“We paid a little for our inexperience,” said Allegri.
“We played with a lot of youngsters. I regret this defeat because I think the match deserved more a draw than a loss.”
“I needed to see the conditions of Juan Cuadrado, who is unfortunately off the Champions League squad list, and also Dybala, whose fitness levels weren’t at their best,” he added.
“The more he plays, the better shape he gets into. He rediscovered some enthusiasm today because it wasn’t easy for him psychologically of late.”
– Kean record –
Kean broke the deadlock when he redirected a tame Cancelo drive, thrusting out his right boot to turn the ball beyond Emiliano Viviano.
The young Italy international became the youngest player to score in four consecutive Serie A matches, having scored six in as many games, and played in just eight this season.
But Bonifazi pulled SPAL level, connecting with a corner to head past Perin.
Former Arsenal forward Stephy Mavididi, 20, came on for Kean midway through the second half for his debut before Floccari fired in the winner after 74 minutes.
Bernardeschi also came off the bench in place of Barzagli, as Allegri pushed for a point, with ten minutes to go.
But SPAL held on to move up to 13th, seven points above the drop zone, having already beaten Champions League-chasing Lazio and Roma.
It was just the second defeat of the season for Juventus, after falling 2-0 to Genoa on March 17.
Download our app and read this and other great stories on the move. Available for Android and iOS.