Haller scored the decisive goal on 37 minutes when he volleyed a shot in off the post after Pablo Fornals had nodded back Robert Snodgrass's cross.
The Hammers controlled the first half, and almost added a second after the restart with Fornals testing Alex McCarthy.
Michail Antonio thought that he had doubled West Ham's lead on 52 minutes but, with the help of VAR, the match officials confirmed a handball prior to his shot.
Southampton almost equalised on 70 minutes when Danny Ings hit the crossbar, while another effort was ruled out for a foul.
A fifth win of the season moves West Ham up to 15th place with 19 points.
A successive defeat for Southampton leaves them in the bottom three.
Southampton: 21 Dec v Aston Villa (A)
West Ham: 26 Dec v Crystal Palace (A)