The Hatters, who were hosting a top-flight clash for the first time since April 1992, tried to make a quick start as Ross Barkley dragged a volley wide from just outside the box.
West Ham offered little as an attacking force in the opening exchanges bar a Said Benrahma shot that flew wide, as Barkley had another chance for the hosts after 15 minutes, once more failing to test visiting goalkeeper Alphonse Areola from a decent position.
Bowen had been kept quiet until the 26th minute when he took Nayef Aguerd’s long ball on his chest and fired narrowly wide.
The visitors almost led after 36 minutes when Edson Alvarez fired goalwards, denied by a brave block from Mads Andersen, with Benrahma curling the loose ball wide.
Town ended the half on the front foot with a corner causing trouble inside the area and Tahith Chong nudging the ball behind from a good position.
The Hammers thought they had doubled their lead five minutes after the break when Emerson blasted the ball into the net after some ponderous defending, only for the offside flag to be raised and the goal disallowed following a VAR check.
Buoyed by still being in the game, the Hatters looked to restore parity with Marvelous Nakamba’s inviting ball into the box not being read by Adebayo, who was unable to turn the ball in under pressure from Aguerd at the back post.
Bowen sensed a second just after the hour mark after being left unmarked once more but this time couldn’t beat Kamsinki.
Roared on by a vociferous home crowd, Luton tried their utmost to find a way back into the game and almost did so when the ball dropped to Morris eight yards from goal, but his shot appeared to take a nick off Aguerd and go over.
West Ham then made them pay with four minutes to go as James Ward-Prowse’s corner was met imperiously by Zouma and his downward header flew in.
Luton gave themselves hope in stoppage time with Morris’ header turned in by Andersen but the Hammers held on.