It took Massimiliano Allegri's men 72 minutes to break down their determined visitors in a game made all the more difficult for the hosts by an injury to Paulo Dybala, who pulled up with a thigh problem during the warm-up.
Without Dybala and the hamstrung Cristiano Ronaldo, the Bianconeri lacked their usual dynamism in the final third and looked set to add to the frustration of their 2-0 defeat at Genoa two weeks earlier by dropping points at home.
But Allegri sent on Kean and the 18-year-old quickly justified that decision with a deflected goal to strengthen his growing reputation as Italian football's hottest prospect.
Empoli set out to rattle its host early on as Rade Krunic fired over the crossbar and then split the Juventus defence before dragging a low shot narrowly wide from the edge of the box.
Mario Mandzukic should have put Juve in front when he met a looping Blaise Matuidi cross from the left with a diving header at close range but Empoli goalkeeper Bartlomiej Dragowski got down smartly to keep it out.
Bernardeschi volleyed a shot from 10 yards that clipped the crossbar on its way over the top five minutes into the second half, before Matuidi missed with a header as Allegri cut an increasingly frustrated figure in the home dugout.
But three minutes after Kean replaced Matuidi the hosts were in front as Mandzukic's superb knock-down gave the substitute the space he needed to rattle the ball in from 12 yards with a touch from Cristian Dell'Orco helping it on its way.
Kean almost added a second but Dragowski made a superb one-handed save to deny him at close range and ensure the result did not flatter Juventus, which was pushed hard by an Empoli side that looks good enough to avoid the drop.