A brilliant victory for the Russian side, however, was marred in the final stages of a highly charged encounter in the Luzhniki stadium when CSKA keeper Igor Akinfeev was sent off for a second yellow card seconds before the final whistle.
CSKA got off to a brisk start and opened the scoring after two minutes when Croatian winger Nikola Vlasic, on loan from Premier League Everton, latched on to Toni Kroos’s poor backpass and slotted home.
It was Vlasic’s second goal in as many games in this season’s Champions League.
The result continued a dismal streak for Madrid, who have won only two of their last five games in all competitions and coach Julen Lopetegui rued a string of missed opportunities.
“Of course, (they) played at home and the quick goal helped them, but we didn’t take our chances,” he told reporters.
“We need to create scoring chances, I’m sure that sooner or later we will start scoring,” added Lopetegui when asked about their recent struggles in front of goal.
Lopetegui decided to start with FIFA Player of the Year Luka Modric on the bench, while other first-team regulars, such as Wales forward Gareth Bale and Spanish centre back Sergio Ramos, were also absent.
Brazil fullback Marcelo and midfielder Isco were ruled out before the game.
Real, who have won the last three Champions League titles, suffered another injury worry before halftime when Dani Carvajal was replaced by Alvaro Odriozola.
Real Madrid mounted wave upon wave of attacks, and wasted several chances in the first half.
Casemiro could have levelled for the visitors midway through the opening period, but his low shot from outside the penalty area bounced off the post, while Karim Benzema’s header hit the bar five minutes before the interval.
Modric came on in the second half for Casemiro, but the 33-year-old Croatia midfielder could not turn the match in Real’s favour.
CSKA manager Viktor Goncharenko heaped praise on a “magnificent” Vlasic and CSKA’s defence. At the same time he was apprehensive over a possible ban for Akinfeev following his red card.
“He is a half of our whole team,” he said.
CSKA top Group G on four points, one clear of AS Roma in second and Real in third.