Stevan Jovetic scored twice for Manchester City, but Jordan Henderson and Raheem Sterling answered for Liverpool in the clash between last season's top two teams in the English Premier League.
Brendan Rodgers' Liverpool dominated in the shootout, with two saves from Simon Mignolet.
Montenegro's Jovetic opened the scoring in the 53rd minute after a defensive miscue from Liverpool midfielder Steven Gerrard.
Jesus Navas had fired a cross from the right and Gerrard was unable to block it. The ball trickled through his legs and Jovetic pounced to fire it home.
Henderson equalized six minutes later with a fine finish after solid work from Sterling and Daniel Sturridge.
But Jovetic restored the Premier League champions' lead in the 67th.
It was the second match in a row that Jovetic scored two for the Premier League champions. He netted a brace in Sunday's 5-1 friendly triumph over Italy's AC Milan in Pittsburgh.
England international Sterling knotted the score at 2-2 in the 85th with a well-taken strike -- and had a goal disallowed in injury time for offside.
After a lively performance throughout, Manchester City were lackluster in the shoot-out, with Aleksandar Kolarov, Yaya Toure and Navas all failing to convert from the spot.
The match drew a crowd of 49,653 to Yankee Stadium.
Manchester City are the majority owners, along with storied Major League Baseball franchise the Yankees, of Major League Soccer expansion club New York City Football Club, which is slated to begin play in 2015 at the baseball ground in the Bronx.
On the night, however, Liverpool fans outnumbered City supporters at the match which was part of the International Champions Cup -- a friendly tournament featuring eight European clubs all preparing for the start of their domestic campaigns.
Manchester City had the better of possession in the scoreless first half, but Liverpool had arguably the best chance to score when Rickie Lambert's header from point-blank range was denied by City keeper Willy Caballero.