The 1-0 win sends West Ham into the knockout rounds of the Europa League.
However it was far from a straightforward night as some players struggled at TSC Arena.
Here's how West Ham rated in Serbia...
— Football on TNT Sports (@footballontnt) November 30, 2023
Made a bit of a meal of one early stop but sharp to deny Milos Milanovic.
Handed only his second start of the campaign. Made an important early block on Nemanja Petrovic but looked, unsurprisingly, short of sharpness.
Some good anticipation but passing remains a concern. Couldn't quite get to a James Ward-Prowse free-kick late on.
A solid enough display and tried to pass through the lines.
Got away with dreadful square pass that gifted Serbians their best opening of first-half.
James Ward-Prowse 6
Free-kick created best chance of the first-half but Soucek couldn't hit target.
Tomas Soucek 6
You'd have expected him to do better with header just before the break but continued his fine scoring form with a vital late goal.
A victim of his own versatility, Spaniard played off the right but struggled to get involved. Booked.
Always likeliest to create a chance from open play.
Said Benrahma 4
His 150th West Ham appearance was one to forget as he regularly squandered decent positions.
Handed only his second senior start after impressive cameo at Burnley but short on service here.
Maxwel Cornet (Benrahma 67') 6
Superb delivery created Soucek winner.
Danny Ings (Mubama 67') 5
Biggest contribution was conceding a free-kick off the ball that brought an end to a promising attack.
Thilo Kehrer (Johnson 79') N/A
Emerson (Cresswell 79') N/A
Unused: Areola, Anang, Zouma, Ogbonna, Scarles, Coventry, Orford, Chesters.