An 89th-minute goal by Fernandinho earned City a 3-2 victory that moved the soon-to-be-deposed champions provisionally into second place — above Arsenal and Manchester United, who both play on Sunday. More importantly, City was nine points ahead of fifth-place Liverpool and sixth-place Tottenham with four games remaining after their draws.
Liverpool drew 0-0 at West Bromwich Albion, and Spurs twice came from behind to draw 2-2 at Southampton. For two teams looking to reel in what increasingly appears a locked-in top four, a point isn't enough at this stage.
"It'll be very difficult now," said Liverpool manager Brendan Rodgers, whose team was runner-up last season.
Leicester and Hull enjoyed significant away wins at the bottom of the standings, dropping Sunderland into the relegation zone in what looks like a fight to the final day for survival.
Watford sealed promotion to the Premier League after an eight-year absence by guaranteeing a top-two finish in the second-tier League Championship with a 2-0 win at Brighton.
City secured a fifth straight home win by edging past Villa, but its performance against a side struggling to avoid relegation again underlined the champions' regression.
Sergio Aguero's third-minute opener — following a goalkeeping error by Brad Guzan — and a 66th-minute free kick by Aleksandar Kolarov should have seen City coast to victory.
However, the swagger of last season has gone, and goals by Tom Cleverley and Carlos Sanchez — both following misjudgments by City goalkeeper Joe Hart — drew Villa level by the 85th.
There was still time for a City corner to drift through a crowded penalty box to midfielder Fernandinho, who chested the ball down before finding the net from eight meters.
"It was one of our worst games in possession," under-pressure City manager Manuel Pellegrini said. "It was strange to see the important number of passes we lost."
Liverpool failed to mark Steven Gerrard's 500th league appearance for the club with a victory at The Hawthorns, with Jordon Ibe going closest when his deflected shot hit the goal frame.
There was more entertainment at St. Mary's Stadium, where Tottenham manager Mauricio Pochettino returned for the first time since leaving Southampton last summer.
Southampton twice took the lead through Graziano Pelle, but goals from Erik Lamela and Nacer Chadli kept Spurs a point above their opponents.
With the title race and the fight for Champions League qualification virtually wrapped up, the battle to avoid relegation looks like going to the final day.
The biggest game at the bottom of the standings came at Turf Moor, where Leicester scraped a huge win in a match that turned on two incidents that occurred in the space of 60 seconds.
After Matt Taylor struck a penalty against the post for Burnley, Leicester went down the other end on a counterattack that ended with Jamie Vardy tapping in a rebound after goalkeeper Tom Heaton prevented a cross from being deflected into his net.
From being apparent certainties for the drop a month ago, Leicester's stunning run has allowed it to climb out of the bottom three, a point above Sunderland. Burnley is last and five points behind Leicester.
Sunderland dropped into the relegation zone by drawing 1-1 at Stoke after failing to capitalize on going ahead after 59 seconds through Connor Wickham. Charlie Adam equalized for Stoke in the 27th.
Queens Park Rangers stayed next to last, four points from safety, after drawing at home to West Ham. Charlie Austin had a penalty saved for QPR.
Hull's survival chances improved thanks to a 2-0 win at Crystal Palace, with striker Dame N'Doye scoring twice in the second half.
Also in the Premier League, Swansea consigned Newcastle to a club record of seven straight league defeats by winning 3-2 at St James' Park.
Tranmere Rovers was relegated from the fourth tier and into the non-leagues for the first time in 94 years after a loss at Plymouth.
Every match in England was preceded by a one-minute's silence to honour the 56 people who died in a fire at Bradford City's Valley Parade stadium in May 1985. The 30th-anniversary tribute coincided with Bradford's final home game of the season in the third tier.