Pierre-Emerick Aubameyang gave Arsenal a first half lead before Takumi Minamino equalised for Liverpool in the second period.
Liverpool have thus lost a second straight Community Shield after falling to Manchester City in similar circumstances last year.
Liverpool had a goal disallowed in the 7th minute after Virgil Van Dijk headed in Andy Robertson’s free-kick but the Dutchman was adjudged to be in an offside position.
Arsenal took the lead through Aubameyang five minutes later. The Gabonese international picked up Bukayo Saka’s pass to the left wing before curling the ball beautifully beyond Alisson Becker to give the Gunners the lead.
Liverpool made their intentions clear of taking the game to Arsenal in the second half when Roberto Firmino curled an effort just wide right after the break.
The Reds had their first effort on goal in the 57th minute but Arsenal goalkeeper Emiliano Martinez was off his line quickly enough to smother Sadio Mane’s effort.
Jurgen Klopp’s men got their equaliser 17 minutes from time when substitute Minamino reacted quickest to a loose ball in the Arsenal box to lash home his first goal for the club since joining from RB Salzburg in January.
After brilliantly chesting down a cross in the Arsenal box, Mane once again failed to get the better of Martinez in the 82nd minute.
In the absence of extra-time, the game headed straight for penalties and Arsenal triumphed 5-4 in the shootout after Liverpool’s Rhian Brewster missed the only kick, with Aubameyang comfortably steering home the winning kick.