Earlier in the day, an injury time winner saw Liverpool jump to the top of the table, while Manchester United’s woes continue after they were embarrassed at home by Bournemouth in a shock 3-0 loss.
Unai Emery’s Villa have now won 15 consecutive Premier Leagues at Villa Park and back-to-back victories over Manchester City and the Gunners have sparked hopes of an unexpected challenge for their first title since 1981.
The only goal came after just seven minutes when Villa captain McGinn span onto Leon Bailey’s cross and fired into the top corner.
“What a monumental week it has been for us,” said McGinn.
“That was actually a really tough spell for us as we played Thursday, Sunday, Wednesday, Saturday and I think it showed in our performance tonight, it wasn’t our best, but I’m certainly not complaining.
“The second half was a bit of character, a bit of grit and fair play to the substitutes who’ve come on.”
Arsenal’s second league defeat of the season leaves Mikel Arteta’s men one point behind Liverpool, who went top with a controversial 2-1 win at Crystal Palace earlier yesterday.
Arteta was forced to watch from the stands as he served a touchline ban and had to restrain himself after the game when asked about a couple of controversial incidents.
Arsenal thought they should have had a penalty in the second half when Gabriel Jesus went down under a challenge from Douglas Luiz.
And Kai Havertz had a late goal disallowed for handball.
“I do (have a) big opinion, yes,” said Arteta. “(But) I prefer not to comment.”
Victory was sweet for Emery, who was sacked by Arsenal four years ago.
The Spaniard has made a remarkable impact at Villa, since his return to England over a year ago.
“It was a tough week and now after these three points we have to be happy but also keep balance,” said Emery.
“I will speak again when we are in game 32 or 33. Today we are at game 16 and we are not a contender (for the title).”
Arsenal rue lack of killer striker
Arsenal were left to rue a number of big missed chances that raise fresh doubts over whether they can win a first Premier League title in 20 years without a natural goalscorer.
“We were the better team, we didn’t deserve to lose but this is football,” said Arteta.
“(Scoring is) the only thing we miss today. We created some really big chances.”
Arsenal’s first big chance came even before Villa scored as Bukayo Saka failed to make contact with Gabriel Martinelli’s cross.
Seconds later, they were behind as McGinn took a perfect touch from Bailey’s cross to tee up his fifth goal of the season.
Emiliano Martinez ensured Villa’s lead lasted until the break as he denied Martin Odegaard and Jesus.
Arteta endured a frustrating watch as Villa rode their luck in the second half.
Ollie Watkins turned a corner onto his own post before Odegaard wasted another big chance by skewing wide.
Saka did finally find a way past Martinez, only to be flagged offside.
And there was late drama when Havertz outmuscled Matty Cash to bundle in at the back post.
The ball appeared to come off both players’ hands as they battled for possession, but the referee’s decision to award handball against Havertz was confirmed after a lengthy VAR review.
Arsenal’s defeat opens the door for fourth-placed City to close back to within four points of the top when the English and European champions visit Luton today.
‘Fortunate’
Jurgen Klopp admitted Liverpool were fortunate to win 2-1 at 10-man Crystal Palace after Jordan Ayew’s harsh red card changed the game late on.
Palace were denied a first-half penalty by a VAR intervention but were awarded a spot-kick early in the second period as VAR spotted a foul on Jean-Philippe Mateta by Jarell Quansah.
Mateta converted the penalty, but the Eagles were undone by two controversial yellow cards shown to Ayew.
Liverpool took advantage of the red card within seconds as Mohamed Salah’s deflected shot brought up his 200th goal for the club.
Substitute Harvey Elliott then fired home a 91st minute winner from outside the box to take Liverpool a point clear of Arsenal at the top of the table.
“I’m a very happy manager in this moment, but I know we were lucky as well,” said Klopp. “For 76 minutes it was a really bad performance.”
Meanwhile, Manchester United’s season hit a new low as Bournemouth secured their first ever victory at Old Trafford in style.
Erik ten Hag’s side had risen to sixth thanks to six wins in eight Premier League games.
But a dreadful display put the Dutchman’s position back under the spotlight ahead of a likely exit from the Champions League at the group stage in midweek.
Dominic Solanke put Bournemouth in front after just five minutes when he turned home Lewis Cook’s cross.
Philip Billing rose to head home Marcus Tavernier’s cross in the 68th minute before Marcos Senesi set the seal on a famous victory for Andoni Iraola’s men.
“I think as a squad we are not good enough to be consistent and we have to work to improve that,” Ten Hag said.
“Of course, I’m annoyed and disappointed, definitely.”
At the bottom of the table, Chris Wilder kickstarted his second spell in charge of Sheffield United with a 1-0 win over Brentford.
Burnley remain off the bottom on goal difference after holding on for a 1-1 draw at Brighton.
Wilson Odobert put the Clarets ahead, but Simon Adingra rescued a point for Brighton, who remain eighth.
Nottingham Forest eased the pressure on manager Steve Cooper by ending a four-game losing streak with a 1-1 draw at Wolves.