Hosts Villa took the lead through Stephen Warnock after 61 minutes but Bolton hit back immediately with a penalty by Martin Petrov and David N'Gog grabbed the winner a minute later.
Bolton climbed above Blackburn Rovers into 18th place, a point behind Wigan Athletic and Queens Park Rangers with a game in hand.
Villa remained in serious danger of going down on 36 points, just two ahead of Wigan and QPR with three matches left.
"Coming into the game we had been in good form and the win tonight gives us 13 points from 21 that have been available," he told the club's website.
"All credit to the players because, to a man, they stood up and were counted tonight. Our character and belief on and off the pitch is going to be so important for us, home and away in our last four games."
Bolton travel to face Sunderland on Saturday while Villa, who have taken just three points from their last seven games, make the short journey to West Brom.
Despite the defeat - and calls for his head from the home crowd - Alex McLeish vowed to fight on as Villa boss.
"I can understand the fans' reaction. They are frustrated, just as I was. To see the game turn around like that after we took a deserved lead was horrible.
"It was incredible the way the game turned but I do understand the fans' reaction. They know the team is in a bit of trouble in a position Aston Villa fans don't expect the team to be in."