After a lacklustre opening half, Chelsea made it four straight wins in Group F thanks to goals from Nicolas Anelka, two from Branislav Ivanovic and a penalty from Didier Drogba.
Substitute Nikita Bazhenov scored a late consolation goal for the Russians in the 86th minute.
The victory now leaves them six points in front of both Marseille and Spartak.
The Blues would have to lose to MSK Zilina at Stamford Bridge in Matchday Five to stop them finishing top.
Chelsea accounted for the Russians 2-0 in the Luzhniki Stadium a fortnight ago but they were slow to get into their stride and could have conceded a goal as early as the seventh minute.
John Obi Mikel was guilty of losing possession and when Chelsea failed to clear the ball, Aiden McGeady fired just wide of Petr Cech's right-hand upright.
Moments later, Spartak goalkeeper Andriy Dykan required lengthy treatment after a collision with Drogba.
Chelsea responded with their first real attack of the game and Yury Zhirkov won a corner after some fine attacking play on the left-flank.
But they failed to make their advantage pay and Spartak once again took the game to the English champions.
However, the Chelsea defence ensured that Spartak were limited to long-range shots and Welliton's effort in the 12th minute was well wide.
Two minutes later, Chelsea's France international Anelka cut inside from the left wing and curled a stunning shot just beyond the far post from 20-yards.
In the 22nd minute, Drogba collected a pass from Ramires and forced Dykan into a fine save at the near post as Chelsea increased the pressure.
Spartak were beginning to push Chelsea deeper towards their own goal but they failed to create a clear-cut opening.
In the 31st minute though Chelsea engineered another opportunity to open the scoring.
A corner from Zhirkov was met by the head of Drogba but the Ivory Coast striker, captain in the absence of rested John Terry, could not hit the target.
But moments later Cech had to be at his best to punch away a dipping shot from Spartak captain Alex.
The Brazilian's low effort was destined for the bottom corner until Cech intervened.
The Russians were on top now with Chelsea chasing shadows for a change.
Dmitri Kombarov should have done better in the 40th minute when he was supplied by Alex on the edge of the penalty area, but his shot was far too high to trouble Cech.
But Chelsea's Brazilian defender Alex should have put the home side ahead moments later when Ivanovic headed on Zhirkov's corner.
However the Chelsea player put the ball over the crossbar from point-blank range.
Chelsea broke the deadlock in the 48th minute when Salomon Kalou put Anelka in the clear and the Frenchman made no mistake from an acute angle.
It was Anelka's fifth goal of the current European campaign and his 10th of the season.
But Spartak hit back immediately and Alex's deflected 20-yard shot had to be pushed away for a corner.
Chelsea made it two in the 61st minute after Evgeni Makeev brought down Drogba inside the penalty area.
The Ivory Coast striker picked himself up and planted a low spot-kick into the right corner of the net.
It was Drogba's first goal in Europe this season and put the Blues in total control of the game.
Chelsea sealed the victory in the 66th minute after Andrei Ivanov hauled down Kalou on the right-hand edge of the penalty area.
Drogba sent over the free-kick and Ivanovic got ahead of his marker to plant a firm header beyond Dykan.
The game was halted momentarily when a Russian fan ran on to the pitch before he was escorted off by Chelsea stewards.
Kalou should have added a fourth in the 75th minute but he sent a 20-yard rising drive over the bar.
The Chelsea striker then forced Dykan into a fine save in the 78th minute with a low drive from the edge of the penalty area.
Then substitute Daniel Sturridge missed a sitter from two yards before Bazhenov scored a consolation goal for the Russians.
However, Chelsea had the last word when Ivanovic scored his second in injury-time.