Hulk opened the scoring after 18 minutes and Danny made it two shortly before the break.
Third-placed Spartak Moscow missed the chance to turn up the heat on the top two as it was held to a goalless draw at home by Terek Grozny.
Mubarak Wakaso put the host in front after 11 minutes and
Ruslan Mukhametshin killed the contest with a third in the 70th minute and, after Islamnur Abdulavov pulled one back six minutes from time, goals at the death from
CSKA slipped back as it went down 2-0 to city rival Dinamo,
Elsewhere, Kuban Krasnodar twice came from behind to draw 2-2 at home to Rostov.