The Ivory Coast international broke the deadlock with a fine individual strike before the Argentine secured the three points for Manuel Pellegrini's sideYaya Toure and Sergio Aguero struck late on to secure a hard-fought win for Manchester City over Aston Villa.
The champions were at risk of losing further ground in the title race ahead of leaders Chelsea hosting Arsenal on Sunday.
But Toure, who once again looked some distance below his best form at Villa Park, broke the deadlock after 82 minutes.
Aguero, who like Aleksandar Kolarov hit the post earlier in the contest, rifled home a second to make the points safe and place the onus back on Jose Mourinho's side, with the gap at the summit reduced to two points.
|By Sam Lee at Villa Park
Aston Villa's fans may have been roused by some fast-paced counter-attacks after the break but by the final whistle here the home side were left dejected and well beaten by a Manchester City side who expertly managed the situation.
With the home support further bouyed by Christian Benteke's return around the hour mark, Manuel Pellegrini's men took the sting out their hosts' game, pinned them back into their own box, pulled them side to side, eliminated their threat on the counter and, eventually, got their goals to record a comfortable victory.
David Silva became increasingly influential, Yaya Toure proved his value with the first goal after a quiet display, and Sergio Aguero capped it off after a similarly frustrating afternoon. All in all, this was a professional, commanding performance from the champions, who have the big personalities to deal with almost any situatio
James Milner came back into the City line-up against his former club alongside defensive duo Eliaquim Mangala and Kolarov as Manuel Pellegrini tinkered with the side that drew with Roma in midweek in the Champions League.
Nathan Baker flung himself to block a sixth-minute strike by Toure after an ambitious effort from Kolarov was partially cleared.
Kolarov found himself in a more favourable position five minutes later and rattled Brad Guzan's near post from the left-hand side of Villa's box.
Aguero glanced wide from a devilish Kolarov cross and strike partner Edin Dzeko lashed into the Holte End when well placed.
Villa refused to buckle under intense pressure at the end of the first half as Milner and Kolarov saw shots deflected narrowly wide before Aly Cissokho cleared Dzeko's goalbound header.
The second half began in dramatic fashion as Milner played through Aguero to strike the base of the post.
The rebound fell favourably for the hosts, who surged forward and a brilliant last-ditch challenge was required from City full-back Pablo Zabaleta to stop Kieran Richardson beating Joe Hart.
Hart's opposite number Guzan produced the save of the match in the 48th minute, plunging to keep out David Silva's shot on the turn having been unsighted.
But Villa were increasingly looking dangerous on the break, with City captain Vincent Kompany required to intervene after Charles N'Zogbia slalomed past Mangala and Fernandinho - the latter hobbling off in the 56th minute to be replaced by Frank Lampard.
The Brazilian's departure saw Villa enjoy a sustained spell of possession for the first time in the contest and Weimann should have done better when he glanced off target from Tom Cleverley's 60th-minute cross.
It was his last act as Benteke came on for his first action since March due to an Achilles injury.
Fernando's introduction for Dzeko allowed City to regain control of central areas and Silva stabbed wide from Milner's low 70th-minute cross.
Aguero, Mangala and Lampard all went on to test Guzan's sound handling, but he had no chance when Toure was allowed room to shimmy past Fabian Delph and caress a left-footed shot into the bottom corner.
Milner fired a pass into Aguero two minutes from time and the tireless Argentine held off Baker and Philippe Senderos to finish and condemn seventh-place Villa to a third consecutive loss.