Luciano Spalletti's table toppers had not dropped a point in over two months as they prepared to face Amkar but, despite dominating the match, they could only claim a 1-1 draw.
Amkar have won just twice on the road in 2013 but both of those victories have come this season and they started well in St Petersburg, taking the lead in the 26th minute.
Defender Thomas Phibel was the unlikely scorer – his first goal in more than two-and-a-half years – as he smashed home after his initial header from a corner had been blocked by team-mate Georgi Peev.
Zenit quickly responded though, with midfielder Danny netting in the 38th minute for his 12th goal of the season in all competitions.
Spalletti's side piled on the pressure in the second half as they chased the victory but were unable to find a winner, despite having 11 efforts at goal.
Zenit still lead the league but their advantage was slashed to three points as second-placed Lokomotiv Moscow won 3-1 at city rivals Spartak Moscow on Sunday, in a game played behind closed doors as a result of unsavoury scenes in their midweek Russian Cup meeting with Shinnik Yaroslavl.
Defensive miistakes gifted goals inside the first 20 minutes to Dame N'Doye and Alexander Samedov to set Lokomotiv on their way, but Spartak responded in the 27th minute through Yura Movsisyan.
N'Doye wrapped up the win with 13 minutes to play though, as his seventh goal in eight matches extended Lokomotiv's unbeaten league run to eight matches.
Spartak remained in third – six points adrift of Zenit – despite their defeat, but have CSKA Moscow and Dinamo Moscow snapping at their heels after posting wins.
Fourth-placed CSKA came from behind to beat Volga 2-1 thanks to strikes from Seydou Doumbia and Zoran Tosic on Saturday, while on the same day Dinamo edged Tom Tomsk 1-0 courtesy of a Maksim Bordachev own goal.
At the other end of the table, rock-bottom Anzhi saw their search for a first win continue as Gerson Acevedo's injury-time strike gave Ural a 1-0 road win on Sunday.
Other results on Sunday saw Kuban Krasnodar edge neighbours Krasnodar 2-1 while Rubin Kazan and Rostov played out a goalless draw.
And on Monday, Sergey Kornilenko's goal gave Krylya Sovetov a 1-0 win at Terek Grozny.
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1
Get FourFourTwo Newsletter
The best features, fun and footballing quizzes, straight to your inbox every week.