Arnautovic was back in the Hammers side and picked up where he left off prior to his hamstring injury.
Hernandez kept his place despite Arnautovic's return and was unfortunate not to give West Ham a 31st-minute lead when he directed a header past Karnezis from a free kick, only for the offside flag to be raised.
The Mexican did score his third goal in as many league games seven minutes later, another well-taken header from Michail Antonio's cross, helped by some weak defending from Marvin Zeegelaar in the six-yard box.
Watford were every bit as good as West Ham in the first two thirds of the pitch, but struggled to create chances from open play with their best first-half effort coming via Adrian Mariappa's header straight at Adrian.
The visitors dominated the opening 25 minutes of the second period but the Hammers were organised and robust at the back to keep Troy Deeney quiet, so again Watford's best chances came from set pieces.
West Ham had a chance to wrap up victory on 72 minutes when Hernandez tried to go it alone rather than square to an unmarked Arnautovic, but his error did not prove costly as the Austrian scored six minutes later.
After a scramble in the penalty area, the ball fell kindly for the forward to poke past Karnezis from close range for his seventh goal in nine league matches either side of his recent layoff.
Both teams are now on 30 points, five clear of the relegation zone.
WEST HAM (5-3-2): Adrian; Zabaleta, Ogbonna, Collins, Cresswell, Antonio; Noble, Kouyate Joao Mario (Byram, 77'); Arnautovic (Rice, 84'), Hernandez (Hugill, 88')
WATFORD (4-3-3): Karnezis; Mariappa, Prodl, Holebas; Janmaat, Doucoure, Capoue, Zeegelaar (Pereyra, 56'); Deulofeu (Lukebakio, 75'), Deeney, Richarlison (Gray, 82')