UEFA Champions League: CSKA Moscow 1 Manchester City 2
Former Manchester United midfielder Zoran Tosic put CSKA ahead in the first half, but Aguero levelled less than two minutes later.
And the Argentina striker added a second before half-time on a difficult pitch at the Arena Khimki to put City back on track to qualify for the knockout stages following their home defeat to Bayern Munich last time out.
The victory leaves Manuel Pellegrini's side second and three points ahead of their Russian opponents, who are on a poor run of form after picking up only one point from their last five Russian Premier League games.
Pablo Zabaleta, Aleksandar Kolarov and Jesus Navas were restored to the City starting line-up at the expense of Micah Richards, Samir Nasri and Gael Clichy.
CSKA goalkeeper Igor Akinfeev (knee) was passed fit to start, but Alan Dzagoev (hamstring) and Aleksandrs Cauna (toe) were not ready to return.
Pellegrini expressed his concerns over the pitch ahead of the game and CSKA had been forced to play their last Champions League fixture against Viktoria Plzen in St Petersburg due to the condition of the playing surface.
But City made a positive start and should have been in front in the third minute when Aguero flicked on David Silva's corner but Yaya Toure failed to apply the finish at the back post.
CSKA coach Leonid Slutsky made a change after just six minutes, with Aleksei Berezutski replacing his twin brother Vasili despite no apparent injury.
Aguero and Alvaro Negredo but had further chances to put City in front, but the visitors were caught cold after 32 minutes when Keisuke Honda headed on and Tosic nipped in to lift the ball over Joe Hart and into the back of the net.
CSKA's joy was short-lived, though, as the away side were back on level terms within two minutes as Silva crossed the ball in from the left and Aguero was on hand to finish from six yards after Sergei Ignashevich failed to clear.
The hosts were struggling to contain City and it was no surprise when Aguero struck again just four minutes before the break with a brave close-range header after he was picked out by Negredo.
Negredo thought he had extended City's lead in the first minute of the second half but he was adjudged to have handled the ball as he applied the finish from close range and was booked.
Hart had to be alert to keep out a headed effort from striker Seydou Doumbia just six minutes after the break.
Ahmed Musa did have the ball in the back of the City net nine minutes from time, but the whistle had already gone for a foul on Toure. Edin Dzeko could have sealed it when he was off target from close range and Honda was denied by Hart right at the death, but City held on for three precious points.