The Swede was left unmarked in the box to guide a header in off the post on the 86th minute and decide a game of few opportunities at the Gazprom Arena.
Juve midfielder Weston McKennie's shot was well saved and Claudinho curled an effort narrowly wide for the hosts early in the second half, but the goalkeepers were largely untroubled as the two teams mustered a combined three shots on target before Kulusevski struck.
Massimiliano Allegri's side top the group with nine points, six clear of Zenit in third and three ahead of second-placed Chelsea, who beat pointless Malmo 4-0 in London.
"The result is excellent especially considering that we are at full points and are yet to concede after three games in this group," said Juve Allegri.
"To be honest, the performance was not great, Zenit were closing down spaces and we did not move the ball quickly enough."
Juve travelled to Russia full of confidence following back-to-back wins over Malmo and European champions Chelsea, but they struggled to find a way through a resolute home defence.
There was a flurry of activity after the break when McKennie latched on to a clever Alvaro Morata through ball and had a shot blocked by Stanislav Kritsyuk, before Claudinho fired wide.
"Certainly we still have to improve. We have to play better in the final third, between the lines and make better decisions," Allegri added.
"We missed [injured] Paulo Dybala, who is certainly a player who can help us with his creativity, but all players must improve in this sense."
He was almost immediately rewarded when the Brazilian midfielder's clever pass behind the defence to Cuadrado was squared towards Morata at the back post, but the striker was denied a tap-in by a Dmitrii Chistiakov intervention.
Zenit were dealt a warning of what was to come on the 74th minute when Mattia De Sciglio's cross from the left wing found McKennie, who glanced a header wide of the far post.
With four minutes remaining, De Sciglio again found space to cross and his delivery was headed in by substitute Kulusevski.