Cardozo scored twice in the second half and then saw his penalty rattle the bar after Nicolas Pareja had been sent off for bringing him down in the area.
But while there was no matchball for Cardozo, there were three vital points for Benfica to move them off the bottom of the group, even if their chances of sneaking into the knockout stages were hugely complicated by Celtic's shock defeat of Barcelona.
Spartak enjoyed the better of the opening exchanges, but Diniyar Bilyaletdinov's shot was blocked by goalkeeper Artur Moraes and Kim Kallstrom sent an ambitious volley over the bar.
Benfica finally began to find their rhythm after 20 minutes and created a series of openings. Rodrigo Moreno's shot was blocked before Eduardo Salvio spurned a better chance, shooting wide on the follow-up after Artem Rebrov could only parry Rodrigo Lima's effort. Enzo Perez then blazed wide from the edge of the area, while a free-kick from Salvio picked out the head of Jardel Vieira but his effort went wide.
Moreno also headed wide and Benfica's frustration continued to grow as Salvio failed to keep a volleyed shot down and Moreno's free-kick curled wide.
The hosts continued to pile on the pressure after the break, but their finishing did not immediately improve as Salvio's 25-yard effort went over and Lima also shot wide.
Spartak briefly threatened again, with Bilyaletdinov's powerful effort parried by Moraes, who then held another shot from Dmitri Kombarov.
The breakthrough came moments later, but came for Benfica. Lorenzo Melgarejo crossed from the left and Cardozo was there to apply the finish from close range.
They only threatened to add to the lead. John Ola tried his luck with a driven shot from 25 yards that fizzed wide while Andre Almeida's effort from similar range went over.
Lima also shot over and Cardozo could not keep his header down from a 65th minute corner, but the second was coming. It arrived in the 69th minute, Ola's cross finding Cardozo for a left-footed volley into the roof of the net.
Artem Dzjuba sought a response for Spartak but Moraes dealt with his shot comfortably and then the Russian cause grew significantly more difficult as Pareja hauled down Cardozo inside the area, conceding a penalty and receiving his marching orders. Cardozo went for power with the penalty, but was denied a hat-trick as it cracked off the crossbar.