Villa had been playing very badly in recent weeks, and Arsenal needed to take advantage of their poor form.
Arsenal had to make a couple of changes from the team that lost 1-0 to Manchester City on Sunday, as Johan Djourou was injured and Alex Song suspended. Arsene Wenger brought Emmanuel Frimpong in for Song in the defensive midfield role, and Francis Coquelin for Djourou at right back. The rest of the team was the same as the one that started against City.
Arsenal didn't start too well, and Villa had the best of proceedings early on, with Wojciech Szczesny making a good save from a Gabriel Agbonlahor header.
Arsenal scored from their first real chance in the 17th minute, and it was Robin van Persie who got the goal. Theo Walcott was held back when he burst into the Villa penalty area, and RVP stepped up to blast the penalty home.
There were no more goals in the first half, but Arsenal were still well below their best. After only nine minutes of the second half, Villa equalised through Marc Albrighton, and Thomas Vermaelen will want to forget his part in the goal. He headed a long ball toward Per Mertesacker, but he didn't get enough on the ball.
Albrighton nipped in to knock the ball past Mertesacker, who had to let him go as he was on a yellow card already. He slipped the ball past the advancing Szczesny, and scored the 20,000th goal in Premier League history.
Things didn't look good for Arsenal at that stage, but the players upped their game and went at Villa.
Arsenal began to turn the screw, and the introduction of Tomas Rosicky for Frimpong put Villa under more pressure. Mertesacker almost scored after a corner fell to him, but the keeper did well to save his effort.
RVP was booked for diving when he was clearly brought down, and hopefully the yellow card will be rescinded.
Will RVP beat Shearer's record?
Andrey Arshavin and Yossi Benayoun replaced Gervinho and Aaron Ramsey with 10 minutes left, as Wenger went in search of a vital, winning goal. Arshavin came close with a shot that was deflected over the bar, but it looked like Arsenal would have to settle for a point as the game entered the last few minutes.
I had mentioned in my preview that Villa were conceding a lot of goals from set pieces, and they did so yet again with only three minutes remaining. RVP swung in a corner from Arsenal's right, and it somehow made it's way to Benayoun, who stooped to head it home. The delight among the Arsenal players was evident, and Villa had very little time to do anything about the goal.
There was just about time for the idiotic Alan Hutton to get himself sent off, though, as he got two yellow cards very late on. He deserved his fate, and he only had himself to blame for his dismissal. The challenge on Vermaelen for the second yellow could have injured the Arsenal player, but thankfully he seemed to be alright.
Arsenal didn't play particularly well, but they got the three points, and that was the most important thing. With both Manchester clubs winning easily, Arsenal needed to win, and it moved them two points ahead of Liverpool who were held at Wigan.
With Spurs playing Chelsea tonight, Arsenal will be in a healthier position after this round of games than they were before them.
I had hoped for Benayoun or Alex Oxlade-Chamberlain to be given a chance from the bench ahead of Arshavin, and I was delighted to see Benayoun take his chance.
I hope that he will get a few more chances to show what he can do, and I wouldn't be surprised to see him start against Wolves in Arsenal's next game. A few of the Arsenal players looked a little tired, and it wouldn't be a bad idea to vary the attacking players just a little for that game.
The game with Wolves was to be played on December 26th, but it has been switched to the next day because of a one-day tube strike in London. Wolves have only taken eight points from their last 14 games, and Arsenal need to take all three points from them. It's important for the Arsenal players to be as fresh as possible to do that, and a couple of changes would not be a bad idea.
Besides Albrighton scoring the 20,000th Premier League goal last night, another record was also set.
RVP equaled Thierry Henry's record of 34 Premier League goals in a calendar year, and he has two home games left to beat that record now. He is also two goals short of Alan Shearer's Premier League record of 36 goals in a calendar year, and that has to be within his sights too.
This Arsenal team has made a habit of grinding out wins when they haven't played too well, and it's a great habit to have.
Benayoun and Rosicky both showed they have something to offer the team last night, and it's good that players are looking to make an impression when they get a chance. The manager will probably take advantage of utilising some of his attacking options against Wolves, but it's a different matter with the defence.
Coquelin didn't look comfortable at right-back all night, but he gave his all and didn't do too badly. Vermaelen looked a little suspect at left-back, too, and Arsenal's lack of full-backs is a serious concern for them.
The sooner that Bacary Sagna returns and Arsenal sign a left-back, the better it will be for their chances of continuing to compete on all three fronts.
With two home games against teams that are struggling within five days of each other, there is a real chance for Arsenal to take six points before the year ends. It's very important that both of those games are approached in the right manner, and Arsenal end the calendar year putting pressure on the teams above them.
If they can win both of those games, I think RVP might just get the goals he needs to set a new record, as long as he isn't one of the players that is rested.
That's it for today.
Here are the highlights from last night's game.
It's not too late to join the over 1,000 other teams in my fantasy league, and there are prizes for the top three teams at the end of the season. Just go to the site and use the code 125540-42785 to join my league when your team is set up.
To join the predictions league, just go to the site and set up your predictions. Then use the code F688F-JCO to join my league. I'll update the league table in my predictions every week.
I'm also a member of a very good and very active Arsenal group on Facebook, which you can join here.
See you tomorrow.