In the build-up to the game at Villa Park, Stoke manager Mark Hughes underlined his side's ambitions to finish as the top team in the Midlands this season, but he must have feared for their chances when Christian Benteke blasted the hosts into a fifth-minute lead following good work by Fabian Delph.
Stoke looked momentarily shell-shocked, but burst into life midway through the first half with two goals in four minutes from Peter Odemwingie and former Villa striker Peter Crouch.
The pair combined on 22 minutes, Odemwingie tucking away his third goal in his last two games after latching on to his striker partner's header, before Crouch added his name to the scoresheet when he side-footed home Erik Pieters' pass.
Steven N'Zonzi completed a remarkable first-half turnaround three minutes before the interval, firing home from 18 yards following Leandro Bacuna's error, and Geoff Cameron added gloss to the scoreline in the final minute.
A first away league victory since the end of August means Stoke climb into the top half above their opponents, 12 points clear of the relegation zone, while for Villa it was a chastening defeat after successive wins over Norwich City and Chelsea.
It all looked to be going to plan for Paul Lambert's Villa side when Benteke gave them a dream start inside five minutes after excellent work by the in-form Delph.
The midfielder, who scored the winner in last weekend's 1-0 victory over Chelsea, turned away from Cameron down the left before finding Benteke, who took a touch and fired high into the net from 10 yards.
Odemwingie went close to levelling in the 20th minute, seeing his effort from the edge of the box deflect on to the roof of the net.
Two minutes later, though, Odemwingie did net the equaliser as he got on the end of Crouch's knock-down before muscling his way through and slotting the ball between the legs of the advancing Brad Guzan.
And Stoke were in front four minutes later, Crouch converting Pieters' low cross after the full-back had got the better of Andreas Weimann on the left-hand side.
All the momentum was with the visitors and they added a third three minutes before the break, N'Zonzi slotting home from the edge of the area after Bacuna's mistake let in Marko Arnautovic.
The second period was less eventful than the first, Odemwingie testing Guzan with a searing drive in the 64th minute.
Stoke kept Villa comfortably at bay before Cameron tucked away Arnautovic's low cross late on after the Austrian had comprehensively beaten the beleaguered Bacuna.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.