Zenit's progress into the knockout rounds of the competition will depend on Porto's result against Austria Vienna as the Russian outfit currently sit two points above them in Group G.
The hosts started off the more attacking side in the first half, while Atletico seemed content to sit back and play on the counter-attack when the opportunity arose.
Following a number of attempts to break the deadlock from Zenit, Hulk came the closest when he retrieved the ball from just behind the strikers and launched a hammering shot towards goal.
Despite the power behind it, Atletico goalkeeper Thibaut Courtois managed to get his body in the way to keep the ball away from the back of the net, and they survived once more when Axel Witsel failed to convert the follow-up shot.
The Russian outfit continued to knock on the door, while Atletico, who rested a number of their stars for the encounter, rarely had possession before the half-time interval.
© Getty Images
At the start of the second half, Zenit began on the front foot once again and could have taken an early lead through Hulk, who managed to get the ball through a number of red-and-white shirts with a left-footed shot, but it headed straight into the keeper.
After missing his chance, Atletico managed to go on the break and the move eventually ended up in Cristian Rodriguez's feet as he stormed towards the box, but the ball just got stuck under his feet to prevent him from getting the shot away.
Zenit went on the attack once again, but some frantic attempts to take a shot in the box resulted in Aleksandr Kerzhakov's attempt bouncing back into the possession of Atletico, who launched into another counter-attack.
The home side failed to get enough bodies back in time, which allowed Adrian Lopez to find space in the box after a storming run and slide a right-footed shot into the bottom-centre of the net, dampening Zenit's hopes of qualifying for the next round.
The game became more open as the half progressed, with both sides creating chances in front of goal, but a long-range effort from Gabi for Atletico kept their lead slim, while Andrey Arshavin drove towards the box and hit a low shot at goal for the home side, but it drifted wide.
Zenit's fortunes eventually changed following a blunder from Atletico keeper Courtois. The home side were on the attack as a cross came into the box, but after defender Toby Alderweireld deflected the ball towards Courtois, the keeper misjudged the flight of the ball and it bounced off the post and the crossbar into the back of the net.
Both sides tried to push for the winner, but it wasn't to be as the game reached the full-time whistle with one goal apiece.