Juventus made it three wins from their opening three Champions League matches as Dejan Kulusevski's late header downed Zenit 1-0.
A match of few clear-cut opportunities appeared to be petering out to a draw, with Weston McKennie having previously squandered Juve's best chances.
Massimiliano Allegri's team were far from their best in St Petersburg, though Zenit offered little threat going the other way.
The decisive moment came four minutes from time, Kulusevski glancing Mattia De Sciglio's cross in off the post to bring up his maiden Champions League goal and keep Juve three points clear at the top of Group H.
Wojciech Szczesny had to adjust his feet after initially misjudging Claudinho's powerful 18th-minute strike, which Juve's goalkeeper managed to get a hand to.
Federico Chiesa looked the most lively attacker at the other end in an underwhelming first half, with Juve's first effort on target not arriving until six minutes after the restart, Stanislav Kritsyuk thwarting McKennie, who had latched onto Alvaro Morata's superb pass.
Leonardo Bonucci came to Juve's rescue moments later, sliding across to block Claudinho's close-range attempt.
With an injury to Malcom, who had linked up well with Claudinho, denting Zenit's threat, McKennie seemed set to break the deadlock in the 74th minute, only for the midfielder to send a free header wide.
But Kulusevski showed his team-mate how it was done 12 minutes later, directing a brilliant header home from De Sciglio's teasing left-wing centre to put Juve firmly in control of the group.