Eddie Nketiah played the part of super sub as Arsenal battled to a 2-1 victory over West Ham at the Emirates Stadium.
Alexandre Lacazette had put the hosts ahead with a fine header before Michail Antonio’s equaliser just before the break.
Despite pressure from the visitors, Nketiah came off the bench to slot home the winner to make it two wins from two for Mikel Arteta’s side.
After penning his new three-year contract in midweek, Pierre-Emerick Aubameyang would have been keen to mark his commitment to Arsenal with a goal.
But Arteta’s preparations were rocked by an injury to Kieran Tierney in the warm-up, with Sead Kolasinac replacing the Scot.
That late change seemed to unnerve the Gunners as West Ham started the brighter of the two sides as Issa Diop went close early on.
The hosts had played some superb football in their win over Fulham but were struggling to find the same level of accuracy and high tempo in their passing.
West Ham felt they could have had a penalty after Jarrod Bowen went down inside the penalty area under the challenge from Gabriel Magalhaes, but VAR correctly ruled against awarding a spot-kick.
With 25 minutes on the clock, and their first chance in the game, Arsenal made the breakthrough.
Aubameyang sprung the offside trap and looped in a fine cross to Lacazette, who sent a thumping header past Lukasz Fabianski.
VAR took a long look to decipher whether Aubameyang was offside but after a one-minute stoppage Michael Oliver pointed to the centre circle.
Perhaps with a sense of injustice, West Ham felt they deserved more than what they had got but made amends just before the break.
Bowen carried the ball forward on the right, laid it off to Ryan Fredericks and the full-back’s precise low cross found Antonio, who swept home from close range.
That goal knocked the stuffing out of Arsenal, who looked some way short of their opening day display, and Arteta made changes to try to find the winner with Nicolas Pepe replacing Willian.
But it was the visitors who continued to look more likely to get the winner and it nearly arrived when Antonio headed against the crossbar from Arthur Masuaku’s cross.
Arteta sent on Nketiah for Lacazette for the last quarter of an hour while Moyes sent on Andriy Yarmolenko.
But it was Nketiah who made the crucial impact, slotting home from Dani Ceballos’ square pass after good work from Bukayo Saka.
Moyes sent on Sebastien Haller and Felipe Anderson late on to search for another equaliser but the damage was done as Arsenal showed their grit and battling spirit despite a below-par display.