Seydou Doumbia struck twice in the first half to give the Russians a shock lead, and the Premier League champion imploded in the second half, receiving two red cards.
Doumbia silenced the home crowd two minutes in, escaping the attentions of Yaya Toure to head Natcho's free kick past a helpless Joe Hart, only for a superb Toure free kick to haul City level six minutes later.
But a poor clearance from Gael Clichy allowed Natcho to supply Doumbia for a clinical second on 34 minutes, and City's lackluster attempts to fight back in the second half resulted in red cards for Fernandinho and Toure.
The Brazilian was sent off for two bookable offenses after coming on at halftime, and then Toure was shown a straight red card for inexplicably shoving over Roman Eremenko as the Premier League champion lost the plot.
City was furious that Pontus Wernbloom was not shown a second yellow card in the second half, with Sergei Ignashevich instead booked in what appeared to be a case of mistaken identity.
Doumbia has proved to be City's nemesis, having now scored five goals in his last three games against them, and his brace Wednesday leaves Manuel Pellegrini's side's chances of progressing from Group E looking bleak.
Victory for the Russian champion was its first in England and moved it above City, level on four points with Roma, with two games remaining.
City slumps to the bottom with only two points and with Bayern Munich, which qualified Wednesday, and Roma to play in the final two games it has it all to do, while CSKA will now be eyeing a place in the last 16.
Pellegrini named the same side that started Sunday's derby victory against Manchester United, while Wernbloom and Alan Dzagoev returned to the CSKA starting lineup after serving three-match bans.
The home fans would have been expecting a positive start from City with so much at stake, but they were stunned into silence when CSKA took the lead after only two minutes.
Gael Clichy was harshly penalized for handball, and an unmarked Doumbia got on the end of the resulting free kick from Bibras Natcho with a powerful header as Martin Demichelis and Toure stood and watched.
Toure made amends for that slack defending just six minutes later, when he curled a measured free kick over the wall and into the net after Stevan Jovetic had been upended just outside the penalty area.
The Russian champion took that setback in stride and should have been back in front when Dzagoev's incisive pass with the outside of his foot sent Doumbia clear, but the striker fired just wide of the far post from the edge of the area.
Sergio Aguero forced a save from Igor Akinfeev at his near post, but City was vulnerable at the back and it was punished again 34 minutes in when Doumbia struck again.
Clichy's dreadful attempted clearance went straight to Natcho, who picked out Doumbia, and he picked his spot to beat Joe Hart with a clinical right-footed finish.
Pellegrini responded to his side's poor first-half display by replacing Jesus Navas and Jovetic with Samir Nasri and Fernandinho.
Akinfeev denied James Milner with his feet just after the hour mark after Toure had played the England midfielder in, but there remained a lack of urgency from a disjointed City side.
And City's hopes of mounting a fightback looked even more remote when Fernandinho was shown a second yellow card after 69 minutes for blocking Ahmed Musa.
Georgi Milanov almost added a third goal when he curled the resulting free kick just wide, then Akinfeev raced off his line to thwart Edin Dzeko when the big striker raced clear.
City was baffled when referee Tasos Sidiropoulos failed to show Wernbloom a second yellow card 13 minutes from time pulled back Aguero, but Ignashevich was cautioned.
Toure then let his frustration get the better of him as he pushed Eremenko over nine minutes from time to add insult to injury before Aguero was booked for diving when City wanted a penalty right at the death.