Alexandre Lacazette and Albert Sambi Lokonga were both returned to the Arsenal starting lineup, while Nuno Tavares made his league debut in place of the injured Kieran Tierney.
Arsenal dominated the early exchanges and came within a whisker of taking the lead in the 20th minute when Thomas Partey’s shot inside the area rattled the goal frame.
Three minutes later, though, Partey broke the deadlock for Arsenal with a looping header from a corner that shot-stopper Emiliano Martinez could only assist into the goal.
On the half-hour mark, Bukayo Saka could have increased the hosts’ advantage when a defense-splitting cross from Tavares sent him free on goal on the blindside, but he struck a low shot straight at the diving Martinez.
Dean Smith’s side struggled to generate opportunities and was denied a penalty on the stroke of half-time after the referee examined the pitch-side Video Assistant Referee (VAR) monitor after Matt Targett’s leg-catch on Lacazette.
Pierre-Emerick Aubameyang went up and, although Martinez stopped his spot-kick first, he pounced on the rebound to give Arsenal a two-goal lead at the interval.
The visitors were unable to settle in the early minutes of the second half, as Emile Smith Rowe made it 3-0 for Arsenal with a deflected drive that caught Martinez off guard after a through pass by Aubameyang.
Arteta was compelled to make a substitute 22 minutes before the conclusion of the match when Lacazette fell down injured and was replaced by Martin Odegaard, while Smith also made a tactical alteration at the same time, with Jacob Ramsey replacing Emiliano Buendia.
Villa pulled a goal back eight minutes from time via Ramsey’s stunning shot from the outside of the box, but it was too little, too late as Arsenal held on to move up to ninth on the table.