James Ward-Prowse put the hosts ahead to continue his impressive run since joining the club, but the visitors responded in the second-half to ease to victory.
Here’s how David Moyes’s side rated...
Made excellent double-save early on to deny Rodri and Dias in frantic passage, then two more fine stops to frustrate Haaland after the break.
Can lack quality in his delivery but not here as Czech delivered an inch-perfect cross to set up Ward-Prowse. Stood off Doku for equaliser but finish was class.
In his first game since being confirmed as permanent captain almost restored lead with powerful header but denied by brilliant Ederson stop.
Made a vital goalline clearance to keep out would-be leveller from Haaland but mistimed his leap when trying to cut out ball that led to Bernardo Silva winner. Might have nodded home early on.
Combined nicely with Paqueta down the left and went close to scoring when denied by good Akanji tackle.
Near-post flick almost teed up Aguerd for opener, though corner might have been heading in without his touch. Cleared off the line to keep out Haaland early on.
Edson Alvarez 7
A commanding presence both in and out of possession and Moyes will hope desperately that the injury which forced him off early is not serious. Booked.
James Ward-Prowse 8
Is having a dream start to life in east London. Diving header here continued run of scoring or assisting in every game for his new club.
Lucas Paqueta 7
On a clear mission to impress against team who tried to sign him this summer. Some mesmeric bits of play and pass sent Antonio through on goal for huge chance not taken.
Almost scored directly from corner early on and pass to release Coufal in build-up to Ward-Prowse goal was cute.
Michail Antonio 6
Usual willing presence up top in games like this but squandered a fine chance to restore lead when heavy touch allowed Ederson to smother.
Said Benrahma (Alvarez 66’) 5
Hesitated when one-on-one with Walker in strong position.
Mohammed Kudus (Antonio 66’) 6
Huge ovation for home debut. One miscued pass blew chance to send Benrahma away.
Thilo Kehrer (Coufal 87’) N/A
Danny Ings (Soucek 87’) N/A
Unused: Fabianski, Cresswell, Mavropanos, Ogbonna, Fornals.