In a dire affair conducted under a constant Russian downpour, Zenit's expensively assembled team could only fumble their way towards a host of half-chances.
Hulk and Axel Witsel, recruited for £64million from Porto and Benfica respectively, continued to struggle alongside their new Russian team-mates and it fell to Kerzhakov to make the points safe following Bram Nuytinck's careless foul on Aleksandr Aniukov.
John van der Brom's Anderlecht emerged with little credit either, failing to even register a shot on target until the final 10 minutes, and the Belgians duly sank to the bottom of Group C.
Much of the pre-match analysis focused on the reunion of Witsel and veteran Anderlecht defender Marcin Wasilewski, whose leg was broken in a controversial tackle back in 2009, when Witsel was with Standard Liege.
Anderlecht and Zenit exchanged early blows with Milan Jovanovic and Hulk both trying their luck, before Kerzhakov missed the chance to put the hosts ahead.
Nuytinck conceded a free-kick on the edge of the box, Hulk's effort dragging just beyond Kerzhakov's outstretched foot and wide.
Kerzhakov went close again, first with a speculative drive and then with a tame bicycle kick, with Guillaume Gillet wasting a solid chance at the other end in between chances.
Sergei Semak was last to threaten in a largely toothless first half but his curling drive sailed over the crossbar.
There was more urgency after the break and Cheikhou Kouyate did well to block a dangerous effort from Hulk in the 52nd minute.
Nuytinck got across to block a similar strike from Kerzhakov before Semak repeated his party trick from the first half to amuse the restless fans.
There was danger for home goalkeeper Viacheslav Malafeev as Dennis Praet unleashed a rocket from distance, Tomas Hubocan neutralising the ball just in time.
With the final 20 minutes approaching, Kerzhakov's clever pull-back met substitute Vladimir Bystrov in a good position but once again the ball ended up in the stands.
Zenit's profligacy meant they did not really merit a goal but it would come in the 72nd minute as Nuytinck upended Aniukov in the box.
Kerzhakov stepped up to coolly beat Silvio Proto low to his left and the Russians were finally on their way to claiming all three points.
The Belgians were not too rattled, though, as Jovanovic arrived in space to lash a fierce shot just over the bar 10 minutes from time.
Kerzhakov fancied a second goal and forced a strong block from Nuytinck, before Anderlecht substitute Oleksandr Yakovenko warmed Malafeev's palms for the first time.
It had been a miserable evening in St Petersburg for Sporting's forward line and it ended on an embarrassing note, Tom De Sutter shamefaced as he was booked for diving.