Hosts, Zenit, opened the scoring in the 20th minute Saturday courtesy of Alexander Kerzhakov, but Spartak found an equaliser on the half-hour mark through Kim Kallstrom, reports Xinhua.
A 69th-minute Hulk strike took Zenit 2-1 in front, but an immediate reply from Yura Movsisyan brought the two teams back on level terms.
Zenit substitute Oleg Shatov broke the deadlock in the 82nd minute before the season's leading goalscorer, Danny, made sure of the result with a strike five minutes from time.
Zenit move to 26 points from 11 matches, while Spartak remain on 23 points.
--IANS (Posted on 29-09-2013)