UEFA Champions League: Zenit 1 Atletico Madrid 1
Courtois misjudged a deflected cross from Igor Smolnikov in the 74th minute and let the looping ball drop into the net.
That cancelled out Adrian Lopez's goal in the 54th minute after a swift counter-attack from the visitors on a cold night in Russia.
Hulk and Aleksandr Kerzhakov both wasted chances for the hosts, who struggled to carve out clear-cut chances despite having plenty of possession.
The visitors – who had already qualified for the knockout stages prior to kick-off – were not at their fluent best but remain unbeaten in Group G with one game remaining.
Zenit's fate will be decided in the final round of fixtures when they travel to Austria Vienna.
Atletico made four changes, Diego Simeone opting to rest Diego Costa, Arda Turan, Tiago and David Villa.
Zenit fielded their strongest possible side, including Hulk and Axel Witsel, although Danny and Cristian Ansaldi missed out through injury.
Hulk and Kerzhakov provided the biggest threat as the hosts started at a high tempo and the Brazilian forced the first save of the match in the 14th minute.
He unleashed a powerful strike from long range after receiving the ball midway inside the Atletico half, but Courtois punched the effort to safety.
Atletico only managed to test Yuri Lodygin in the final seconds of the half, the goalkeeper comfortably dealing with Koke's volley from the edge of the penalty area.
Chances continued to be at a premium after the break, but the lively Hulk was again denied by Courtois after a neat lay-off from Roman Shirokov.
Kerzhakov was also guilty of missing a good opening and his lack of quality in front of goal was punished as Atletico took the lead from their best chance of the game.
Having been released on the left by Raul Garcia, Adrian cut inside his marker and fired through the legs of Lodygin for his first goal in the competition.
Shatov wasted a great chance just after the hour mark but his blushes were spared when Zenit equalised somewhat fortuitously.
Smolnikov's cross from the right flicked off the head of Toby Alderweireld and looped over Courtois, who misjudged the flight of the ball.
STATS ZONE Zenit 1-1 Atletico analysis