Kevin De Bruyne nearly added a third just before the break as City threatened to extend their lead, but his free kick from the edge of the box skimmed the roof of the net.
West Ham almost levelled shortly after halftime through a quick break as Mohammed Kudus hit the post, with the chance galvanising the home crowd and West Ham's players.
But Haaland secured the win with another cool finish in the 83rd minute, charging on to Matheus Nunes' through ball and lifting his shot over substitute keeper Lukasz Fabianski.
The striker followed up last week's treble against Ipswich Town to record his seventh goal in three games this season and his 70th Premier League strike in 69 appearances.
He nearly scored a fourth in the fifth minute of added time but Fabianski saved his shot from a tight angle before Ederson denied Crysencio Summerville a late consolation.
City have three wins from three to open up an early two-point lead over last season's runners-up Arsenal, who drew 1-1 at home to Brighton & Hove Albion on Saturday.
West Ham have three points from three games.
Haaland hat-trick earns Man City 3-1 win at West Ham
Image: REUTERS/Hannah Mckay
Erling Haaland's second successive hat-trick propelled Manchester City to a 3-1 win at West Ham United on Saturday, maintaining the champions' perfect start to the Premier League season.
The Norwegian striker missed an early chance but made no mistake with the second, calmly slotting past Alphonse Areola to put City ahead in the 10th minute after Bernardo Silva dispossessed Lucas Paqueta in midfield.
West Ham equalised against the run of play after 18 minutes, when Ruben Dias deflected Jarrod Bowen's cross into his own net, before Haaland restored City's lead on the half-hour mark, smashing a vicious shot beyond Areola from close range.
Haaland almost turned provider in the 38th minute, playing a lovely cushioned pass into the path of Rico Lewis but the full back blazed his shot over the bar.
Kevin De Bruyne nearly added a third just before the break as City threatened to extend their lead, but his free kick from the edge of the box skimmed the roof of the net.
West Ham almost levelled shortly after halftime through a quick break as Mohammed Kudus hit the post, with the chance galvanising the home crowd and West Ham's players.
But Haaland secured the win with another cool finish in the 83rd minute, charging on to Matheus Nunes' through ball and lifting his shot over substitute keeper Lukasz Fabianski.
The striker followed up last week's treble against Ipswich Town to record his seventh goal in three games this season and his 70th Premier League strike in 69 appearances.
He nearly scored a fourth in the fifth minute of added time but Fabianski saved his shot from a tight angle before Ederson denied Crysencio Summerville a late consolation.
City have three wins from three to open up an early two-point lead over last season's runners-up Arsenal, who drew 1-1 at home to Brighton & Hove Albion on Saturday.
West Ham have three points from three games.
READ MORE:
Bafana coach Broos makes another plea for young players to be made available for Cosafa and Chan
Pirates into third consecutive MTN8 final after comfortable victory over Cape Town City
Brighton end 10-man Arsenal's winning start with 1-1 draw
Rulani Mokwena’s tenure as Wydad coach starts with league loss
Would you like to comment on this article?
Sign up (it's quick and free) or sign in now.
Please read our Comment Policy before commenting.
Most read
Latest Videos