Emmanuel Dennis fired Watford, who had their last two games postponed, into a fourth-minute lead with a fine left-foot effort from the edge of the box but Claudio Ranieri's side were unable to build on their advantage.
The Hammers pushed forward with intent and drew level in the 27th minute with a first-time drive from Tomas Soucek who latched on to a through ball from Jared Bowen.
Two minutes later, Said Benrahma put the visitors ahead, drilling home after Michail Antonio had cut in from the left and slipped the ball into the Algerian's path.
David Moyes' side thought they had a third through Bowen but VAR spotted a foul by Soucek on Dennis and the effort was over-turned.
But the Hammers did double their advantage through a Mark Noble penalty after referee Darren England went to the pitchside monitor and ruled Watford keeper Daniel Bachmann had brought down Bowen.
Substitute Nikola Vlasic completed the rout, slotting home after good work from Bowen.