The nine-time champions are now fifth on 47 points from 29 matches and occupy the final European qualifying position, one point ahead of FC Krasnodar, who take on bottom-of-the-table Anzhi Makhachkala on Sunday.
Spartak started in lively fashion and missed a handful of chances before their fans staged a 15th minute walk-out in protest at the team's poor performances. Spartak reacted positively and their Armenian striker Yura Movsisyan scored in the 31st minute following a basic mistake by Amkar's Bulgarian defender Zakhari Sirakov.
After the break, Amkar upped the tempo and pinned Spartak back, but failed to find an equaliser and Polish defender Jakub Wawrzyniak was sent off in injury time for a second bookable offence.
"We experienced serious difficulties in all of our recent matches and today it was also hard," Spartak caretaker coach Dmitry Gunko said, who took over last month after Valery Karpin was sacked.
"After we opened the score we had plenty of chances to increase our lead but unfortunately missed them all. Luckily, we managed to keep a clean sheet. We got three points and that's the main thing about today's match."
In Saturday's early match, two-time former champions Rubin Kazan thrashed 4-0 Samara away. Rubin's Ghanian midfielder Mubarak Wakaso and Russian midfielder Pavel Mogilevets, as well as strikers Sardar Azmoun and Marko Devic all scored to leave Samara third from bottom and facing a relegation play-off against the third or fourth team from the second division.
Meanwhile, Terek Grozny beat 2-0 Volga Nizhny Novgorod with second-half goals by Oleg Ivanov and Jeremy Bokila to secure their place in the Premiership for next season.