It was a timely, morale-boosting victory for CSKA who face Inter Milan in the Champions League quarter-finals in Italy on Wednesday. CSKA were trailing 1-0 after Andrei Streltsov scored in the 11th minute following a mistake by goalkeeper Igor Akinfeyev.
But Honda levelled four minutes after the break, beating the hosts 'keeper Ilya Abayev with a well-struck free-kick. In the 62nd minute Czech striker Tomas Necid netted the winning goal with a header from Georgy Shchennikov's left-wing cross.
"We played an awful style football in the first half," said CSKA manager Leonid Slutsky. "We just didn't expect Makhachkala to start the match so lively and we conceded a silly goal. Luckily we managed to improve after the break and win the match."
Defending champions Rubin Kazan were held to a 0-0 draw by Terek Grozny.
Rubin are one of four sides at the top of the table who have seven points after three matches although Spartak Nalchik lead the way on goal difference.
Nine-time champions Spartak Moscow notched their first win of the season in a 2-1 victory in the Moscow derby with Lokomotiv.
Spartak were 2-0 ahead after 18 minutes with Czech defender Marek Suchy and Brazilian striker Ari on target.
Lokomotiv pulled one back through Ukrainian midfielder Alexander Aliev in the 28th minute who notched his third goal of the season.