Lee Hendrie was the Villa hero as he scored a last-gasp equaliser to deny 10-man Charlton all three points on a night of high drama at The Valley.
Charlton led 2-0 at the break thanks to a George Boateng own goal and a Claus Jensen penalty.
However Villa hit back with a second half bombardment against the 10-men following the first half dismissal of Richard Rufus and duly earned reward for their endeavour.
John Gregory introduced David Ginola and Darius Vassell at half time and the pair both scored to set up a grandstand finish.
But, in the dying seconds of four minutes of injury time, Hendrie turned in the box and fired home Villa's second equaliser of the night.
There was no indication of what was to come as the game started tamely between two teams with aspirations of qualifying for next season's Uefa Cup.
But the deadlock was broken when Villa's Boateng sliced a low cross from Jonatan Johansson into his own net on 15 minutes.
The game exploded after 35 minutes when Graham Poll sent off Rufus.
Poll had controlled the game by the letter-of-the-law and when Rufus made a late lunging takle on Mark Delaney he pulled out the red card.
Dion Dublin and Kinsella were also cautioned and in the mayhem Paul Merson sent a fierce drive cracking against Sasa Ilic's post.
On the stroke of half-time Poll caused more controversy but this time it delighted the home crowd.
He pointed to the spot adjudging Steve Staunton to have pulled back Paul Robinson and Jensen duly converted the spot-kick.
But Gregory's adventerous substitutions added zest to Villa's play and they pegged back their hosts.
Ginola scored their first after 56 minutes, sweeping in a cross from the left for his third goal in a Villa shirt.
In quick succession Ilic made outstanding saves from Dublin and Merson before Vassell finally breached the defence again.
The Charlton custodian was soon beaten again but the crossbar denied Merson before Kinsella raced away to send the home support into raptures.
But they did not count on Hendrie's late intervention.
Charlton Athletic: Ilic, Fish, Rufus, Todd, Konchesky, Parker, Kinsella,
Jensen, Johansson, Robinson, Bartlett.
Subs: Newton, Brown,
Salako, Svensson, Caig.
Aston Villa: James, Delaney, Alpay, Staunton, Wright, Stone,
Taylor, Boateng, Hendrie, Dublin, Merson.
Subs: Joachim, Ginola,
Vassell, Samuel, Enckelman.
Referee: G Poll (Tring).