John McGinn’s opener after 20 seconds shocked the visitors, but they recovered to win after their ill-fated entry and quick withdrawal from the controversial Super League this week.
They even survived after Stones was sent off for a late challenge on Jacob Ramsey – ruling him out of Sunday’s Carabao Cup final with Tottenham.
Matt Cash also saw red in the second half after two quickfire yellow cards for fouls on Foden to ease any fears of a Villa comeback.
The hosts remain 11th with any European hopes they had slipping away.
City boss Pep Guardiola said before the Super League’s mass exodus “sport is not sport if losing doesn’t matter” and City were losing after just 20 seconds.
They were caught cold by Tyrone Mings’ quick free-kick, which a stretching Stones failed to cut out. It fell to Ollie Watkins and the striker crossed for McGinn, arriving ahead of Oleksandr Zinchenko, to sweep in from 10 yards. It was Villa’s fastest Premier League goal for 26 years.
The hosts had not played for 11 days, in which time City had a gruelling Champions League quarter-final win at Dortmund and a FA Cup semi-final defeat by Chelsea.
Yet, with Guardiola making eight changes to freshen his squad they gradually began to dominate and Riyad Mahrez tested Emi Martinez after 20 minutes.
It served as a warning as City levelled two minutes later following a terrific flowing move. Ederson began from the back and picked out Zinchenko with a 50-yard pass and he knocked it off to Foden. The England midfielder found Mahrez on the right and continued his run into the area where Bernardo Silva, after being slipped in by Mahrez, found him to fire a first-time finish past Martinez.
A confident City continued to press with the game almost exclusively played in Villa’s half and Mahrez had a free-kick deflect over.
But Villa’s concentration levels could only keep City at bay for so long and the champions-elect broke through again five minutes before the break. Foden’s corner was only half-cleared, Ilkay Gundogan and Mahrez kept the ball alive and Rodri glanced into the corner after Martinez failed to beat him to Silva’s cross.
City looked on course to cruise to another three points, but just four minutes later Stones was dismissed. He went for a bouncing ball just inside the City half and clattered Ramsey, with referee Peter Bankes initially giving the defender a yellow card.
VAR intervened though and once Bankes checked his monitor he reversed his decision to show Stones a straight red – in front of watching England boss Gareth Southgate. It was late rather than malicious and the decision left Guardiola fuming, but Cash levelled the numbers up after 56 minutes.
It was rash from the right-back, who had been booked for a foul on Foden just two minutes before, when he chopped down the midfielder again after losing the ball.
The red played into City’s hands and they were happy to control the pace without leaving themselves stretched.
Gundogan flashed a free-kick over with 14 minutes left and City saw out the game with ease to leave them 11 points clear at the top.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies