Gabriel Jesus scored his first Manchester City goal as they tore West Ham apart at London Stadium.
City, who left striker Sergio Aguero and goalkeeper Claudio Bravo on the bench, led when Kevin de Bruyne played a one-two with Jesus before stroking home.
Four minutes later, they doubled their lead when the impressive Leroy Sane beat two defenders and his deflected cross was tapped home by David Silva.
And the game was as good as won before half-time when Raheem Sterling squared the ball to Jesus to tap home.
Yaya Toure added a fourth after the break from a penalty when Hammers debutant Jose Fonte brought down Sterling.
West Ham, who made errors to lose possession for each of City’s three first-half goals, have been beaten heavily by City twice at home in 2017, having lost 5-0 in their FA Cup meeting last month.
City are now only behind fourth-placed Liverpool on goal difference, 10 points behind leaders Chelsea.