McCarthy gifted Nketiah the ball for the opener and, after Jack Stephens was dismissed for a late foul on Pierre-Emerick Aubameyang, he failed to hold an Alexandre Lacazette strike as Willock gobbled up the chance.
Having lost at Manchester City and Brighton since the resumption of the season, the three points were enough to take Arsenal back into the top-half.
Midfielder Matteo Guendouzi surprisingly escaped Football Association punishment having grabbed Brighton match-winner Neal Maupay by the throat at full-time of their last contest – but he was not included in Arteta's 20-man squad here as the Spanish coach picked up his first Premier League away win as manager.
After an even start, there appeared to be no danger for the hosts as Jan Bednarek rolled a pass back to goalkeeper McCarthy – but Nketiah showed the type of desire called for by his manager by chasing it down.
His tenacity paid dividends as McCarthy hit his clearance straight at the striker, who was left to roll the ball into an empty net.
The rest of the first half played out without much incident, although Nketiah came close to stealing the ball from McCarthy again, the England international this time relieved to hear the referee's whistle deem he had been fouled.
Skipper James Ward-Prowse bent well over the bar from a position where he would usually be expected to do much better.
Arsenal would come close to doubling their lead soon after as Emiliano Martinez's kick found Aubameyang, whose close-control allowed him to cross low, with Bednarek diverting the ball inches wide of his own goal.
The visitors were operating on the break more regularly and Hector Bellerin saw a fizzing effort blocked after the ball had fallen kindly to him inside the box.
In an increasingly end-to-end contest Danny Ings flashed a half-chance well wide with Stuart Armstrong also unable to test Martinez with a curling effort over the bar.
Martinez was finally called into meaningful action with 12 minutes remaining as he got down low to push away Long's shot.
But Southampton's push for an equaliser was hit as Stephens was shown a red card for bringing down Aubameyang as the Arsenal skipper ran through on goal.
The result was secured from the resulting free-kick, substitute Lacazette hitting the wall before his follow up was fumbled by McCarthy and allowed Willock to tuck away his maiden Premier League goal.