Manchester United gained bragging rights over rivals Arsenal as first-half goals from Bruno Fernandes and Jadon Sancho sealed a 2-0 friendly win at MetLife Stadium in New Jersey.
The match was played in front of a stadium soccer record crowd of 82,262.
Fernandes celebrated being appointed United's new captain by beating Aaron Ramsdale from 20 yards, although the Arsenal keeper could have done better.
And Sancho doubled the advantage with a powerful shot into the top corner.
The winger, playing as a false nine in an outfield line-up manager Erik ten Hag changed completely at half-time, finished after speeding on to a mistake from Gabriel.
However it was not all good news for United, who lost forward Amad Diallo to injury minutes after his introduction at the interval.
Arsenal created a number of chances but failed to find the net, including Gabriel's late header which was deflected wide.
Towards the end of the game some fans started throwing punches at each other in the stand behind the United goal, although the altercation was quickly resolved.
After the final whistle, the two teams took part in a penalty shoot-out - with both managers having decided their players needed to practise in front of a crowd.
United won that too, 5-3, after Arsenal's Fabio Vieira skied his effort over the bar.
Sancho gets on scoresheet
The stadium commentator must have been provided the wrong information about United's number 25, announcing his name as "Jadon Sanchez" twice after his goal, before eventually correcting himself.
Yet, in a way, that faux pas underlined Sancho's own struggles since joining United.
The winger had a poor first season at Old Trafford and then last term a superb pre-season was followed by inconsistency when the important stuff started.
Sancho then had a complete break from the game when his hopes of going to the World Cup came to a crushing end with his omission from England's September internationals.
The 23-year-old is one of those players United would probably sell, save for the fact they would get nothing like the £73m they paid Borussia Dortmund for him.
Sancho has talent though. Of that there is no doubt. He also has lots of pace.
The Londoner showed both as he seized on a loose ball after Gabriel miskicked in the 37th minute and must have covered 40 yards at top speed before smashing his strike into the top corner.
Playing in a false nine role and with Anthony Martial again on the injured list, Sancho could save United some money if ongoing negotiations with Atalanta over Rasmus Hojlund continue to frustrate.
Arsenal fail to fire
The £200m recruitment drive Arsenal have been on this summer means Arteta has options that did not exist last season.
With the exception of striker Gabriel Jesus and currently injured full-back Oleksandr Zinchenko, the Gunners' starting line-up looked like the one they could start their Premier League campaign with.
While the scoreline did not go in their favour, they would have been in front but for a superb double save from Tom Heaton to deny Gabriel Martinelli - and the defensive error for United's second was one of those rare mistakes that cannot be predicted.
By the time he had made two lots of changes in the second half, Arteta had swapped almost two-thirds of his team, yet the quality remained.
Eddie Nketiah should have done better after being fed through a quickly-taken free-kick, while Kai Havertz headed Martin Odegaard's cross over when well placed.
In theory, Arsenal are now preparing for a meeting with Barcelona in Los Angeles on Wednesday, although they will travel to the west coast on Sunday in the knowledge the Catalans had to call off their game against Juventus due to a virus sweeping through the camp.