Raheem Sterling gave City a first half lead before Joel Matip grabbed a late equaliser for Liverpool in the annual curtain-raiser to the English top-flight season.
In the shoot-out, City keeper Claudio Bravo saved from Georginio Wijnaldum, with Gabriel Jesus driving in the winning kick after successful efforts from Ilkay Gundogan, Bernardo Silva, Phil Foden and Oleksandr Zinchenko.
The jubilant celebrations from City’s players and fans showed inflicting an early psychological blow on Liverpool was a moment to savour, regardless of the supposed warm-up status of the glamour friendly.
With City installed as favourites to win the title for a third successive season and Liverpool expected to present the strongest challenge to Pep Guardiola’s side, their meeting on the eve of the season was a window into what to expect this term.
After pipping Liverpool to last season’s Premier League title with 98 points to their rivals’ 97, City went on to complete an unprecedented domestic treble by adding the FA Cup to the League Cup they won earlier in the campaign.
But Jurgen Klopp’s men didn’t dwell on that painful near-miss as they won the Champions League just weeks later.
On the evidence of this hard-fought contest, which featured both flashes of quality and signs of rustiness, there will little to separate the two teams as they go head-to-head for the major prizes once again over the next 10 months.
Retaining the Community Shield trophy they won 12 months ago would improve City's belief that they can repeat last season's remarkable silverware haul, but Liverpool could take encouragement as well after they finished strongly enough to have won.
The only dark cloud for City was an injury to Leroy Sane, who limped off in the 10th minute holding his right leg after collapsing while chasing a long pass.
Sane was playing on the day reports claimed his agents had agreed a contract with Bayern Munich, who are keen to sign the Germany winger.
City’s victory was a well-time riposte for Guardiola, who this week hit back at Klopp’s claim that the champions live in a transfer “fantasy land”.
City flex muscles
Guardiola gave a debut to Spain midfielder Rodri, who joined from Atletico Madrid for a club record £63 million (B2.348 billion) in the close-season.
And the 23-year-old’s composed passing and physical presence showed why City’s financial muscles have been flexed again.
Sterling hadn’t scored in his last 10 appearances against Liverpool in all competitions, but the England winger ended that drought in the 12th minute.
Kyle Walker’s high pass to the far post caught Liverpool appealing in vain for offside as Kevin De Bruyne headed on to David Silva.
Silva flicked towards Sterling and his close-range effort was just strong enough to escape the grasp of Reds keeper Alisson Becker and trickle over the line.
Much improved after the interval, Liverpool were inches away from equalising when Virgil van Dijk's half-volley crashed down off the crossbar onto the goalline before City scrambled clear.
Salah was by far Liverpool’s most menacing player and he twisted away from the City defence before firing a fierce strike that cannoned off the outside of the post.
Guardiola had his head in his hands in frustration when Sterling again ran clear on goal without scoring as his hesitant stumble allowed Alisson to save at his feet.
City paid for that miss when Liverpool deservedly equalised in the 77th minute, Van Dijk helping on Jordan Henderson's free-kick before substitute Matip headed in from close-range.
Walker’s incredible overhead-kick clearance then repelled what looked to be a late Salah winner, setting up City’s shoot-out triumph that stood as the opening salvo in what looks set to be a season-long feud.