The win followed two consecutive league defeats and allowed the 10-time former champions to cut the gap on third-placed Krasnodar to three points with six games left.
Spartak had to wait until first-half injury time to open the scoring when Brazilian Luiz Adriano found Nikolai Rasskazov who scored from close range.
Yenisei then played the last 30 minutes with 10 men when substitute striker Artur Sarkisov suffered a hip injury just a minute after coming on and with coach Dmitry Alenichev already having exhausted his allocation of three substitutions.
Midfielder Ayaz Guliev added the second goal in the 84th minute.
"My men did everything for the win," Spartak manager Oleg Kononov said. "And I'm pleased that Rasskazov and Guliev both scored their first goals for the club."
Ural Yekaterinburg boosted their chances of avoiding relegation with a 2-1 win over two-time former champions Rubin Kazan.
Midfielder Andrei Yegorychev beat Rubin 'keeper Ivan Konovalov with a 30-yard screamer after just 12 seconds.
Dmitry Poloz levelled three minutes later before Romanian striker Eric Bicfalvi came off the bench to score the winner with five minutes to go with a close-range header.
Ural boss Dmitry Parfyonov said: "Eric Bicfalvi is a true warrior."
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ