Fabio Vieira converted the winning penalty in the shoot-out, handing the Gunners a 4-1 win.
Arsenal took home the first piece of silverware of the new season as they beat treble-winners Manchester City on penalties to lift the Community Shield.
Substitute Cole Palmer appeared to have won it for City in normal time after a fine curling finish, only for an unfortunate last-gasp deflected Leandro Trossard goal to earn Arsenal a 1-1 draw and take the game to a shoot-out.
The Gunners scored all of their spot-kicks while Kevin De Bruyne fired against the bar and Champions League final match-winner Rodri’s poor effort was saved by Aaron Ramsdale.
Just as 12 months ago, Erling Haaland had a quiet afternoon in this fixture but his replacement, Palmer, had appeared set to add another trophy to the brimming cabinet at the Etihad Stadium.
Arsenal had their moments and arguably got the goal their play had deserved when a late Trossard effort took a deflection off Manuel Akanji.
Fabio Vieira then converted the winning penalty in the shoot-out, handing the Gunners a 4-1 win.
Arsenal showcased their big three summer additions with Declan Rice, Kai Havertz and Jurrien Timber all starting, while Havertz’s former Chelsea team-mate Mateo Kovacic was the only new name in City’s line-up.
New refereeing guidelines saw both Thomas Partey and Julian Alvarez booked for kicking the ball away, while the former showed ring rust in passing straight to Haaland on the edge of his own box, with the forward teeing up Rodri – whose shot deflected inches wide.
Mikel Arteta fell foul to the same tightening of the rules as he was furious that Rodri was not cautioned for a pull of Havertz’s shirt, his gesticulating of a card instead earning the Arsenal boss a booking.
Despite City dominating play it was Arsenal who came closest to breaking the deadlock at the midway point of the half, Stefan Ortega managing to keep out a Havertz shot before Gabriel Martinelli’s follow up was blocked by John Stones.
It was Havertz again who almost opened the scoring as half-time approached, the Germany forward seeing another effort saved by Ortega after Martin Oedgaard and Bukayo Saka had combined.
At the other end, goalkeeper Ramsdale would have been relieved to see Rodri’s speculative effort from the halfway line land of the roof of his net as he scrambled back towards goal.
With just over an hour gone, City boss Pep Guardiola opted to take off Haaland, last season’s 52-goal man restricted to just 13 touches in a similarly-peripheral performance to that in defeat to Liverpool in the fixture a year ago.
Palmer came on in his place and the England Under-21 European Championship winner was soon in the thick of things.
His first chance at goal saw his shot glance off the thigh of Timber for a corner as City looked to regain their earlier dominance.
He went one better soon after, once again receiving the ball on the right-hand side of the Arsenal penalty area but this time bending a fine strike past Ramsdale.
Fellow substitute Phil Foden should have doubled the lead only for Ramsdale to make a fine last-ditch save, repeating the feat from the resulting corner to keep out Rodri’s near-post header.
Arsenal would level in fortuitous circumstances as, deep into stoppage time, Trossard’s shot took a deflection off Akanji, wrong-footing Ortega and sending the Arsenal fans behind the goal into raptures.
Skipper Martin Odegaard put Arteta’s men ahead in the shoot-out before substitute De Bruyne rattled the frame of the goal with his own effort.
His Belgium team-mate Trossard put Arsenal in control of the shootout with Bernardo Silva scoring City’s only penalty as Bukayo Saka – who missed at the same Wembley end during the Euro 2020 final – also stroked home.
The writing was on the wall when Rodri’s poor effort was saved by Ramsdale and Fabio Vieira fired the ball home from 12 yards to seal victory.