Villa staged a stunning late show to record their first-ever win at the Britannia Stadium.
Gabby Agbonlahor gave Paul Lambert's team the lead with a strike that took him level with Dwight Yorke's club record tally of 60 Premier League goals.
The away side's hard work appeared to have been undone, though, when substitute Michael Kightly equalised 11 minutes from time.
But Matt Lowton's stunning 30-yard volley and a late Christian Benteke effort gave Villa a valuable victory to lift them out of the bottom three.
Paul Lambert opted to shuffle his pack following last weekend's home loss to Liverpool, bringing Jordan Bowery and Fabian Delph into the starting line-up for midfield duo Barry Bannan and Yacouba Sylla.
The Potters, meanwhile, made three changes from last Saturday's 1-0 defeat to Everton.
Tony Pulis opted for Dean Whitehead, Matthew Etherington and Kenwyne Jones in place of Glenn Whelan, Cameron Jerome and former Villa man Peter Crouch.
The boys in claret and blue had the upper hand in the first period although not before they survived an early penalty appeal when John Walters' fierce cross struck Nathan Baker's arm.
But from there on the visitors were in charge and it took just nine minutes for Agbonlahor to break the deadlock.
The move started with Lowton cutting in from the right and venturing along the by-line before laying off to Agbonlahor.
The Erdington-born forward was well-placed inside the six-yard box and, although his first effort was blocked, he rolled his second attempt past Asmir Begovic to give Villa the lead.
The momentum stayed with Lambert's Lions, who almost doubled their advantage two minute later when Bowery brushed the side netting with a curling 25-yard shot.
The woodwork saved Stoke on 29 minutes when Andreas Weimann made a piercing run through the middle, only for his low long-range drive to come back off the post.
Bowery looked to follow it up but the former Chesterfield forward lost his footing.
Benteke also had a lively first-half, creating two opportunities for Agbonlahor.
Firstly, the Belgian powerhouse picked out his strike partner who steered a left-foot shot just wide from the edge of the penalty area.
Moments before the break, Agbonlahor raced on to a lofted pass from Benteke and tried to take the ball round Begovic.
But, rather than award a penalty, referee Mark Clattenburg produced a yellow card for the Villa striker.
Villa started the second period in the same manner that they finished the first.
Bowery, making his second top-flight start, continued to grow in confidence.
Within two minutes of the restart, he forced Begovic into a one-handed save at the near post.
The Stoke keeper also held a glancing header from Bowery.
The hosts had rarely threatened in the second half but delivered a sucker-punch through Kightly.
Walters drifted past Lowton on the left flank before passing inside to Charlie Adam. The Scotsman stuck a leg out to steer the ball into the path of Kightly, who drove home a first-time shot.
Step forward Lowton. A corner from Ashley Westwood was cleared to Lowton around 30 yards from goal.
The full-back controlled on his chest before unleashing an unstoppable volley which looped over Begovic and into the top corner.
It was a goal worthy of winning any match at any level.
Benteke gave Villa some breathing space in the final minute.
He dispossessed Ryan Shawcross in the middle of the Stoke half and continued towards goal before applying a neat finish.
STOKE: Begovic, Cameron, Shawcross, Huth, Wilson, Shotton, N'Zonzi, Whitehead, Etherington, Walters, Jones. Subs: Sorensen, Owen, Adam [for Shotton, 77], Kightly [for Etherington, HT], Crouch, Wilkinson, Jerome [for Wilson, 52].
VILLA: Guzan, Lowton, Vlaar [c], Baker, Bennett, Westwood, Delph, Agbonlahor, Weimann, Bowery, Benteke. Subs: Given, N'Zogbia [for Bowery, 82], Holman, Sylla [for Agbonlahor, 74], El Ahmadi, Bent [for Weimann, 85], Lichaj.