The English champions - playing for the first time since wrapping up an unprecedented domestic treble with FA Cup glory almost two months ago - did not have things all their own way in the first half and were forced to come from behind after Mark Noble's penalty.
Pep Guardiola's side will now face Wolverhampton Wanderers in the final on Saturday, while West Ham take on Newcastle United in the third-place playoff.
City's preparations for the pre-season tournament had been disrupted by two delayed flights to China, but despite arriving in the country just 24 hours before kickoff it was the Premier League champions that made the quicker start to the match.
Man City debutant Rodri slid a pass through for Silva who in turn helped it on to an unmarked Poveda inside the area, but the youngster's tame finish was also thwarted by West Ham's new goalkeeper when he should have scored.
The Hammers, who confirmed the club-record signing of Sebastien Haller moments before kickoff, began to grow into the game as the half wore on and almost took the lead after 11 minutes when Felipe Anderson fired a low strike narrowly past the far post after being found by Manuel Lanzini.
Lanzini came close himself nine minutes later when his dragged effort forced the fit-again Claudio Bravo into his first save of the afternoon, but they would not have to wait much longer to open the scoring.
The breakthrough came from the penalty spot as Noble kept his nerve after Angelino had handled the ball on the floor when trying to prevent Anderson from taking the ball past him inside the area.
Angelino, who was re-signed by Man City earlier this summer, suffered a torrid first half at left-back and was fortunate not to concede another penalty just six minutes later when he appeared to trip Ryan Fredericks, only for the referee to this time say no.
Guardiola's side took full advantage of the let-off and levelled the scores just a minute later as Silva provided a moment of class, taking down Adrian Bernabe's pinpoint pass on his chest before firing his finish past Roberto from a tight angle.
The turnaround was complete less than 90 seconds later as City this time benefited from a penalty decision, with Angelo Ogbonna adjudged to have tripped Nmecha inside the area.
Nmecha took on the spot-kick duties himself and sent Roberto the wrong way to give Man City the lead, just four minutes after surviving the penalty claim at the other end.
West Ham refused to let their heads drop despite the quickfire brace, though, and they ended the half on top with Declan Rice forcing a save from Bravo and Anderson then passing a finishing narrowly wide.
The star quartet immediately allowed City to take a greater degree of control over the game, and eight minutes after the restart Roberto was called into action to deny Sane and Sterling in quick succession.
Sterling did get his first of the afternoon shortly before the hour mark, though, latching on to a Sane through-ball after Issa Diop's mistake and taking his time before firing a finish past the keeper.
West Ham - arguably the better team in the first half - were largely outclassed in the second but did still have their moments, one of which saw a lovely one-touch move eventually tee up Javier Hernandez, who could only blaze his finish over the crossbar.
Any hopes of a comeback were soon ended by Man City's fourth as the Hammers were once again punished for a defensive error, with Carlos Sanchez being caught in possession and Sane then linking up with De Bruyne to set up Sterling, who doubled his personal tally.
Manuel Pellegrini's side came within inches of pulling a goal back just three minutes later when Bravo parried Hernandez's free kick into the path of Andriy Yarmolenko, who could only put his rebound against the post from a tight angle.
City were consistently the more threatening of the two sides in the second half, though, and Sane should have scored with a good chance at the near post before firing a tame strike straight at the keeper with the last meaningful action of the match.
The champions will now face Wolves in the final on Saturday before continuing their pre-season tour of the Far East, with their first competitive game coming against Liverpool in the Community Shield on August 4 and a Premier League opener against West Ham following a week later.
MAN CITY STARTING XI: Bravo; Danilo (Walker 62'), Harwood-Bellis, Laporte (Stones 62'), Angelino (Zinchenko 62'); Doyle, (Gundogan 62'), Rodri (Garcia 69'), D Silva (Bernardo 46'); Bernabe (Sane 46'), Nmecha (Sterling 46'), Poveda (De Bruyne 46')
WEST HAM STARTING XI: Roberto; Fredericks (Zabaleta 63'), Ogbonna (Reid 71'), Diop, Johnson (Cresswell 63'); Noble (Obiang 63'), Rice; Anderson (Yarmolenko 46', Wilshere (Snodgrass 46'), Lanzini (Diangana 63'); Antonio (Hernandez 46')body check tags ::