Mbwana Samatta pulled a goal back for Villa but, despite Bjorn Engels hitting a post with two minutes left, a spirited performance could not stop City.
— Manchester City (@ManCity) March 1, 2020
The holders have now lifted the trophy in five of the last seven seasons, with Liverpool the only other team to win it three years in a row, between 1981 and 1984.
Victory also gave City welcome reason for cheer following their two-year European ban, against which the club are appealing,
For Dean Smith’s Villa, defeat capped a weekend which saw them drop into the bottom three in the Premier League after their relegation rivals picked up vital wins.
Star man Jack Grealish failed to have any impact at Wembley and, while Villa put up more fight than in the 6-1 defeat by City 49 days earlier, they are now left in a nail-biting fight against the drop.
Villa have won three of their last 13 league games but can take heart from their gutsy display in the final.
Having been so passive in defeat to City last time, Villa took the game to their opponents and Anwar El Ghazi planted a header over after three minutes.
But Guardiola’s side soon took control and Aguero flicked a ninth-minute header over.
They dominated possession, as Villa sat deep, trying to probe for an opening but initially found their opponent’s massed ranks difficult to break down.
The pattern of the half was set, City pressing and Villa frustrating but Aguero’s breakthrough inevitably came after 20 minutes.
Rodri’s fine pass found Phil Foden escaping around the back and his header fell for Aguero to sweep in, via a touch from Tyrone Mings, from six yards.
The striker, who scored a hat-trick in City’s romp at Villa Park, ended a four-game drought for his 22nd goal of the season.
Foden’s angled drive then deflected wide and Guardiola’s side waited for the right moment to pick Villa off again.
They did not have to wait long for a simplistic second on the half hour.
Grealish blocked Ilkay Gundogan’s cross with Lee Mason awarding a corner.
Villa disputed it, with replays confirming it should have been a goal kick, but then failed to deal with Gundogan’s delivery and Rodri got above Frederic Guilbert to crash in a header.
The game looked gone and Mings blocked Raheem Sterling’s drive to prevent a third before John Stones’ slip gifted Villa a way back four minutes before the break.
The defender tumbled as he chased Matt Targett’s chip, which allowed El Ghazi to cross for Samatta to head in from six yards.
City had threatened to outclass their opponents before the goal and emerged for the second half eager to stamp their authority again.
Foden volleyed wide and Kevin De Bruyne replaced Gundogan but City were far from their fluid best.
Villa refused to go quietly and the Premier League strugglers kept the Premier League champions, who were too casual at times, on their toes.
Orjan Nyland denied Rodri a second with 17 minutes left when he turned the midfielder’s header wide and Aguero hit the side netting before Villa almost forced extra time with two minutes remaining.
Conor Hourihane swung in a corner and Engels’ header was brilliantly turned onto the post by Claudio Bravo.
David Silva could have eased any late nerves a minute later but his low drive was stopped by Nyland.