In a game lacking quality, the 76th-minute effort by the Spanish playmaker saw the Hammers open their account for the top flight campaign after losses to Manchester City, Nottingham Forest and Brighton.
It cooled some of the scrutiny on David Moyes but only heightened the tension for opposite number Steven Gerrard, who watched Villa struggle to create opportunities and his side were booed off at full time.
A midweek win at Bolton had eased some of the pressure on Gerrard, who went strong for the Carabao Cup tie and made minimal changes here with Ollie Watkins and Danny Ings again starting together up front.
West Ham had also endured a difficult start and, in an attempt to arrest their slump, Moyes went with a back five and soon saw his team on the back foot.
Erzi Konsa had the ball in the net after 14 minutes but the hosts’ celebrations were cut short after Lucas Digne’s corner kick had gone fractionally out of play.
Watkins was a constant threat for Villa in the opening exchanges and saw one shot deflected behind by Kurt Zouma before another tame header was easy for Lukasz Fabianski in the visitors’ goal.
For all the huffing and puffing of Gerrard’s side, they had little to show in terms of clear-cut chances with West Ham weathering the storm after Gianluca Scamacca, on his first Premier League start, helped out defensively by heading over a dangerous Douglas Luiz free kick.
The £30million summer signing had been preferred to Michail Antonio in the Midlands and created an opportunity for Fornals before half-time but the Spaniard dragged his volley well wide and it remained goalless at the break.
Moyes was forced to bring off Ben Johnson due to injury during the first 45 and made another change for the second half with Said Benrahma introduced in place of debutant Emerson Palmieri, which saw the Hammers switch back to their favoured 4-2-3-1 formation.
It immediately improved their display and they should have broke the deadlock in the 56th minute.
Fornals played Jarrod Bowen through after John McGinn’s slip but the England international dithered on the ball and Digne produced a superb sliding tackle after good initial work by fellow full-back Matty Cash.
A neat one-two between Tomas Soucek and Scamacca saw the latter test Emi Martinez just past the hour mark but the Italian was withdrawn for Antonio soon after.
The Hammers remained the side in the ascendency and with 16 minutes left Fornals did open the scoring at Villa Park.
Zouma brought the ball forward and found captain Declan Rice, who picked out Fornals and the Spaniard’s 25-yard effort deflected off Konsa and looped over Martinez to put the visitors ahead.
Villa attempted to respond quickly and Cash curled over but the hosts were consigned to a third defeat of the season with Watkins’ late penalty appeals after Vladimir Coufal’s grappling waved away to see them booed off.