In front of over 22,000 fans at Molineux, Villa forward Libor Kozak opened the scoring after just six minutes with a stunning 20-yard strike.
The game took until the 72nd minute to explode into life, when Dave Edwards met a Dominic Iorfa cross at the near post to level the game.
But the home fans had barely retaken their seats as Kozak restored Villa’s lead, sliding in to convert a Callum Robinson cross.
Kozak was replaced by new signing Jordan Ayew, making his debut on the night that Sky sources reported the imminent arrival of fellow African forward Emmanuel Adebayor.
With just one minute of normal time remaining, Conor Coady found the run of Afobe, who slotted past new Villa goalkeeper Mark Bunn in typically decisive fashion to share the spoils.
In the night’s other West Midlands derby, West Brom took the bragging rights from the Bank’s Stadium, beating Walsall 2-0 courtesy of goals from Saido Berahino and Brown Ideye.
Berahino, subject of much transfer speculation, brushed aside what the club have described as “silly” talk of a move away from the club to start the game and open the scoring, finishing a fine flowing move midway through the second half.
The Baggies then sealed the win when a second James McClean assist was converted by Ideye.
In the evening’s only all-Premier League fixture, West Ham edged Norwich 1-0 at Carrow Road.
The game was disrupted by a raft of substitutions, with West Ham replacing nine of the players that started the game with an hour gone.
But it was two of those substitutes that made the difference for West Ham with less than 10 minutes remaining. New signing Dimitri Payet continued his excellent pre-season by delivering a near-post cross onto the head West Ham’s youngest ever player, Reece Oxford.
The 16-year-old’s header may have taken a deflection on the way past Norwich goalkeeper John Ruddy, but it was enough to secure the win for Slaven Bilic’s men.
Elsewhere, a Joe Mason brace in between a Troy Deeney equaliser gave Cardiff a 2-1 win over Premier League new boys Watford.
Meanwhile, Bournemouth eased to a comfortable 3-0 win at Yeovil courtesy of two goals from Junior Stanislas and one from Joshua King, for whom the Cherries agreed a compensation fee with former club Blackburn Rovers just hours earlier.
Everton beat Dundee United 2-0 at Dens Park. The 22-year-old Conor McAleny, a product of the club’s academy, put the Toffees ahead after just two minutes. England midfielder Ross Barkley won and converted a penalty to seal the win.
Striker Romelu Lukaku limped off holding his hamstring after 32 minutes, but manager Roberto Martinez dismissed any serious injury concerns after the game, telling evertontv: “He was feeling his legs were a little bit too heavy and we didn’t want to take any risks, but it’s not a problem.”
New Leicester City manager Claudio Ranieri enjoyed a reunion with one of his former star players at Chelsea, Jimmy Floyd Hasselbaink, now managing Burton.