Ivory Coast striker Lacina Traore headed Guus Hiddink’s men ahead in the 57th minute and Morocco international Mbark Boussoufa added a second 20 minutes later after great work by Cameroon striker Eto’o.
CSKA, who beat Anzhi 1-0 in their first meeting this season in August, had midfielder Alexander Cauna sent off after a second booking late in the first half and rarely troubled the home side.
“It was a high tactical game with both teams trying to play to their strength,” Hiddink told Russian television NTV.
“But we had an extra man in the second half and we tried to force the game to them. We scored two goals and in the end could have had another one.”
After the second goal, an emotional Eto’o ran to the stands to celebrate with the home fans.
“The fact that we beat the league leaders makes all of us very happy,” said the four-times African Footballer of the Year, who joined Anzhi last year on a three-year deal which pays him a reported annual salary of $26m.
“After that second goal I was overcome with emotions and wanted to share my joy with our fans. If (security) didn’t stop me I would have just kept on running and running.”
The win extended Anzhi’s unbeaten run to five games and moved the big-spending club from the volatile North Caucasus region level on 40 points with CSKA, though the Muscovites remained in first place because they have won more matches.
Champions Zenit St Petersburg are third, three points adrift after beating nine-man Spartak Moscow 4-2 in a heated encounter on Friday to end their three-game winless streak.
Belgian international Axel Witsel scored twice while Brazil striker Hulk and Russia midfielder Roman Shirokov added a goal apiece for the visitors.