Match ends, West Ham United 0, Manchester City 2.
Erling Haaland opened his Manchester City goal account and demonstrated the huge threat he will pose this season as the champions began the defence of their Premier League crown in impressive fashion at West Ham United.
The brilliant 22-year-old Norwegian striker delivered exactly what City manager Pep Guardiola wanted following his summer signing from Borussia Dortmund when he gave City the lead from the penalty spot nine minutes before half-time, after he was brought down by West Ham's substitute goalkeeper Alphonse Areola.
He was on as substitute for injured Lukasz Fabianski but was helpless when Haaland wrapped up City's win after 65 minutes with a composed left-foot finish from Kevin de Bruyne's perfect pass.
City won at a canter against a strangely passive West Ham, who barely threatened after a brief opening burst, spending long spells out of possession as the champions exerted almost complete command.
Man City lay down a marker
Manchester City have wasted no time in demonstrating they will be the team to beat in the Premier League title race this season with a superbly controlled display.
Once City had seen off West Ham's early efforts they dominated possession and won with so much to spare that there were thousands of empty seats in London Stadium long before the final whistle.
City did not need to exert themselves but they present an ominous prospect for their rivals with the power, skill and goalscoring ability of Haaland bolted onto the sort of service he will receive from the likes of De Bruyne and Phil Foden.
Guardiola gave his other summer signing, England midfield man Kalvin Phillips, a couple of minutes to ease in with the game won.
And an encounter that was flagged up as a potentially fierce test for City proved to be a stroll, with three points a formality long before the end.
Haaland will rightly claim the headlines but all of City's other qualities were on show in a package that will have Premier League defences looking nervously at what might face them when they meet Guardiola's side.
This was as easy as it gets against a West Ham side who tested City to the limit here last season and were a formidable prospect at home - but not here as they were put away with consummate ease.
Passive Hammers get what they deserve
West Ham went into the game with high hopes, although manager David Moyes felt he could not risk new £30m striker Gianluca Scammaca from the start.
Instead, following a bright first few minutes, West Ham barely laid a glove on City, sitting back almost waiting to be beaten, which they inevitably were.
Declan Rice tried in vain to exert some influence but West Ham were so starved of the ball that they simply could not get a foothold in the game.
It led to groans of frustration from West Ham fans inside London Stadium as they demanded their team at least try to apply pressure on City.
There will be better days ahead for Moyes and West Ham when they assemble all of their new faces before the end of the transfer window but this was a chastening day for a club that has been looking forward to the season with such optimism.
- 1FabianskiSubstituted forAreolaat 29'minutes
- 20BowenSubstituted forDownesat 90+2'minutes
- 10LanziniSubstituted forBenrahmaat 57'minutes
- 8FornalsSubstituted forCoventryat 90+2'minutes
- 9AntonioSubstituted forScamaccaat 57'minutes
- 3Rúben Dias
- 7CanceloBooked at 45mins
- 17De BruyneSubstituted forPalmerat 88'minutes
- 16RodriSubstituted forPhillipsat 89'minutes
- 8GündoganSubstituted forBernardo Silvaat 78'minutes
- 47FodenSubstituted forMahrezat 88'minutes
- 9HaalandSubstituted forÁlvarezat 78'minutes
- 20Bernardo Silva
- Michael Oliver
- Shots on Target
Second Half ends, West Ham United 0, Manchester City 2.
Offside, West Ham United. Kurt Zouma tries a through ball, but Saïd Benrahma is caught offside.
Substitution, West Ham United. Flynn Downes replaces Jarrod Bowen.
Substitution, West Ham United. Conor Coventry replaces Pablo Fornals.
Attempt missed. Nathan Aké (Manchester City) header from the centre of the box misses to the left. Assisted by Riyad Mahrez with a cross following a corner.
Corner, Manchester City. Conceded by Kurt Zouma.
Attempt blocked. Julián Álvarez (Manchester City) right footed shot from outside the box is blocked.
Substitution, Manchester City. Kalvin Phillips replaces Rodri.
Substitution, Manchester City. Riyad Mahrez replaces Phil Foden.
Substitution, Manchester City. Cole Palmer replaces Kevin De Bruyne.
Corner, Manchester City. Conceded by Ben Johnson.
Phil Foden (Manchester City) wins a free kick in the defensive half.
Foul by Saïd Benrahma (West Ham United).
Attempt missed. Rodri (Manchester City) right footed shot from outside the box misses to the left. Assisted by Jack Grealish.
Substitution, Manchester City. Julián Álvarez replaces Erling Haaland.
Substitution, Manchester City. Bernardo Silva replaces Ilkay Gündogan.
Attempt missed. Jack Grealish (Manchester City) right footed shot from the left side of the box is close, but misses to the left. Assisted by Kevin De Bruyne.
Attempt blocked. Erling Haaland (Manchester City) left footed shot from the left side of the box is blocked. Assisted by Ilkay Gündogan.
Jack Grealish (Manchester City) wins a free kick in the defensive half.
- Our coverage of your Premier League club is bigger and better than ever before - here's everything you need to know to make sure you never miss a moment