Thomas Hitzlsperger's spectacular late goal ensured Villa completed a superb comeback at in-form Bolton.
El-Hadji Diouf diverted Kevin Nolan's drilled pass beyond Thomas Sorensen to give Bolton the lead, but Gavin McCann headed Villa level before the break.
Bolton pushed for a winner but Sorensen saved from Henrik Pedersen and Diouf headed against the woodwork.
And substitute Hitzlsperger struck after 89 minutes as Villa won away for the first time this season.
Bolton, unbeaten at home in the Premiership going into the match, seemed the most likely to win as the match wore on.
But Sam Allardyce's team paid for not converting their second-half opportunities.
Villa had not won away in the Premiership since April but competed manfully against a team renowned for their physical style and were rewarded for their endeavour.
The early stages were almost totally bereft of goalmouth action.
Juan Pablo Angel made two curving runs across the Bolton backline but each time he got the ball he was adjudged to have been offside.
Bolton goalkeeper Andy Oakes - making his debut in place of the suspended Jussi Jaaskelainen - came out of his goal uncertainly to clear a corner and it took a header from Radhi Jaidi to clear the danger.
But it was Bolton who opened the scoring.
Neat build-up work from Kevin Nolan and Kevin Davies after 18 minutes created space for Gary Speed, but his shot drifted wide.
Shortly afterwards, though, Nolan's drilled cross-cum-shot was turned home by Diouf.
Ricardo Gardner was extremely fortunate to avoid a red card after 32 minutes.
Already booked, the Jamaica international seemed certain to receive a second yellow after lunging at Gavin McCann, but escaped with a final warning from Andy D'Urso.
The next clash between the two players had an even more significant effect on the match.
Hendrie crossed from the right and McCann managed to climb above Gardner to head the ball past Oakes for Villa's equaliser.
Bolton went in search of a second after the break, mounting a sustained period of pressure deep in the Villa half.
Villa survived several goalmouth scrambles, while for all their possession Bolton struggled to create any clear-cut opportunities.
David O'Leary's team almost scored with their first serious foray forward in the second half, but the home team managed to block Mark Delaney's strike at goal.
A terrible pass from Villa's Ulises de la Cruz put Pedersen through down the right but Sorensen saved with his legs.
As the game really started to open up Carlton Cole picked out Hendrie in the Bolton penalty area but a heavy first touch from a good position allowed the home team to clear.
Diouf almost netted for Bolton in the late stages but his header hit the woodwork and rebounded to safety.
And Villa hit the home team with a sucker punch, substitute Hitzlsperger smashing the ball past Oakes on the half volley from 20 yards.
Bolton: Oakes, Hunt, Jaidi, N'Gotty, Gardner,
Hierro (Campo 81), Nolan (Vaz Te 90), Speed, Pedersen, Davies,
Subs Not Used: Poole, Cesar, Ben Haim.
Goal: Diouf 21.
Aston Villa: Sorensen, De la Cruz, Mellberg, Delaney, Samuel,
Solano (Luke Moore 75), McCann, Hendrie (Ridgewell 90),
Whittingham (Hitzlsperger 63), Cole, Angel.
Subs Not Used: Postma, Davis.
Goals: McCann 41, Hitzlsperger 89.
Ref: A D'Urso (Essex)