The Russians stole the result despite a very lackluster performance at home, but nevertheless move off the foot of the Group C standings thanks to a second-half spot kick
With both sides needing a win to resurrect their failing European challenges, a penalty from Aleksandr Kerzhakov in the second half, given after a foul by Milan Jovanovic, was enough to send the Russian outfit to a victory that it barely deserved.
Anderlecht will rightfully be disappointed with the result, as it fashioned the best chances throughout the match, and fell victim to a momentary lapse at the back to leave it with one point from its opening three games.
Zenit now moves off the foot of the table with the win and sit three points behind Group C leaders Malaga, which squares off with AC Milan later on Wednesday.
With so much at stake, it was perhaps no surprise to see the match take a while to get off the ground, as both sides seemed determined to prevent a goal rather than score themselves.
The first opening went Anderlecht’s way after 12 minutes, as a delightful one-two between Tom de Sutter and Jovanovic saw the latter drag wide of the far post after going one-on-one with Vyacheslav Malafeev.
That chance seemed to spark Zenit forward, and a stinging free-kick from Hulk was whipped inches wide of the far post, with two of his teammates close to getting a touch.
The best chance of the first-half fell to Anderlecht after 26 minutes, when Guillaume Gillet turned Domenico Criscito inside out to find himself in point blank range, only to slide the ball across goal when it was begging to be hit.
That was about as close the match got to a goal before the break, as both teams were extremely labored in their play, despite the 0-0 scoreline doing more harm than good to their chances of making the knockout stages.
Anderlecht came close four minutes after the restart, after good work from De Sutter out wide saw him tee up Jovanovic inside the area, but the Serbian, instead of attacking the cross, elected to go to ground in futile hopes for a penalty.
But the second half followed the pattern of the first, with both teams lacking any sort of initiative in attack, as goalmouth action remained elusive.
There was finally some action of note just past the hour mark, as a testing free-kick from Lucas Biglia was punched clear by Malafeev moments before Kanu was able to connect.
Not long after, substitute Vladimir Bystrov cut into space just inside the area, but his shot was fired disappointingly over the bar.
Bu Zenit was handed a huge stroke of luck with 18 minutes remaining, after Anyukov was hauled down by Jovanovic while attacking a free-kick, leaving the referee with little choice but to award a penalty.
Most of the players were unaware that the infraction had been called, but after matters had settled, Kerzhakov stepped up to send Proto the wrong way and give the home side a lead it scarcely deserved.
Anderlecht pressed forward in the time that remained, but despite a few spells of pressure, it could not strike a telling blow as Zenit ran off with the points, though with Malaga and AC Milan set to square off later in the day, its task in Group C remains monumental.