Ollie Watkins’ early goal was enough for the win as Arsenal endured another injury setback with Thomas Partey coming off in the second-half.
Mikel Arteta’s side remain in 10th position in the league but could end up in the bottom half if results don’t go their way.
Villa recovered from their midweek loss against West Ham United and are five points off the top four places with a game in hand.
Villa broke the deadlock inside the opening two minutes after some poor Arsenal defending which resulted in Watkins’ deflected strike going into the back of the net.
Both teams had opportunities to score in the first half but Emiliano Martinez saved from Granit Xhaka’s free-kick while Mat Ryan stopped Bertrand Traore’s lobbed shot.
After the break, Ross Barkley and John McGinn forced saves from Ryan while Nicolas Pepe was a constant threat for Arsenal but failed to score.
Partey limped off after the hour mark and Grealish almost doubled Villa’s lead but Ryan produced a fine save to deny him.
Arsenal almost equalised late on but Martin Odegaard’s close range shot blazed over the bar.
Watkins also saw a strike go just past the post but Villa survived to secure an important victory.