Irons captain Mark Noble broke the deadlock on 25 minutes but Joe Lolley levelled with an 18-yard effort before West Ham regained the lead just 11 seconds after the restart when Marko Arnautovic latched onto a flick by Cheikhou Kouyate.
Manuel Lanzini wrapped up the points with a well-crafted third goal on 58 minutes and swiftly added a fourth.
Mooy's fellow Australia international, Mat Ryan, was also on the end of a defeat as Alan Pardew recorded his first Premier League win as West Bromwich Albion manager at the ninth attempt.
Jonny Evans and Craig Dawson netted past Socceroos goalkeeper Ryan to give the second-bottom Baggies their first league win since August.
Newcastle United stretched their winless home run in the Premier League to seven games and continued to slide towards the relegation zone after a 1-1 draw with bottom team Swansea City.
Crystal Palace continued their rise up the table under former England manager Roy Hodgson by beating Burnley 1-0, Bakary Sako scoring the only goal of the game with an angled left-foot drive in the 21st minute.
Abdoulaye Doucoure's controversial last-gasp equaliser denied Southampton a first win in 10 matches.
The midfielder diverted the ball in with his arm a minute before full-time as Watford came from two goals down to snatch a 2-2 draw.
James Ward-Prowse had scored twice in the first half before Andre Gray pulled one back and Saints were crestfallen when Doucoure's equaliser was allowed to stand having stooped to nod into the net, although the ball missed his head and he swept it home with his arm.
Fifth-placed Tottenham host Everton in the later kick-off.