Last season's runners-up are in prime position to secure a 20th league title after beating Reading 1-0 at Old Trafford whilst reigning champions City were surprisingly beaten 2-0 by Everton at Goodison Park.
For United, Wayne Rooney scored the only goal in the 21st minute as they recorded their sixth-straight league victory to extend their unbeaten run to 17 games whilst City conceded to Leon Osman and Nikica Jelavic despite Steven Pienaar seeing red for the Toffees.
Chelsea reclaimed third spot thanks to their 2-0 home win over West Ham United today with Frank Lampard netting his 200th club goal and Eden Hazard adding a second to replace Tottenham who were beaten 1-0 at home by Fulham with former Spurs star Dimitar Berbatov scoring the only goal of the match early in the second half.
Arsenal moved close to edging North London rivals Spurs out of a Champions League place by beating Swansea City 2-0 at the Liberty Stadium thanks to second-half goals from Nacho Monreal (his first for the club) and Gervinho. They now sit four points behind Tottenham in fifth.
Villa hit the front after Gabby Agbonlahor and Andreas Weimann scored either side of the break before Andros Townsend netted his second in two matches for the R's but Christian Benteke had the last laugh with a winner nine minutes from time.
Liverpool crashed 3-1 at Southampton who had Morgan Schneiderlin, Rickie Lambert and Jay Rodriguez to thank for their goals, Stoke City and West Bromwich Albion played out a 0-0 draw, Sunderland and Norwich City drew 1-1 despite Canaries goalkeeper Mark Bunn's sending off and Wigan Athletic produced a last-gasp 2-1 win over Newcastle United.
2012/13 Barclays Premier League season scores