A quickfire double from Marko Arnautovic sent Villa to defeat at the Britannia Stadium.
Rémi Garde's men were left with an uphill task after Arnautovic struck twice in four second-half minutes.
And while the visitors staged a brief rally in the closing stages, Leandro Bacuna's late goal proved to be a mere consolation.
Garde made just one change from the 6-0 defeat to Liverpool, with Alan Hutton getting the nod over Micah Richards at right-back.
Rudy Gestede returned to the fold too, taking his place among the substitutes to boost Garde's attacking options.
It was the away side's rearguard, though, that had to be alert in the early stages.
Stoke provided Villa with a huge scare on seven minutes when the outstretched boot of Jores Okore sent Ibrahim Afellay's cross towards the top corner of his own net.
Fortunately, Mark Bunn showed tremendous reflexes to scoop it over the bar.
Joleon Lescott also had to be alert to cut out Arnautovic's ball into the six-yard box after Giannella Imbula made a piercing run through the middle.
And Geoff Cameron couldn't keep his effort down after Xherdan Shaqiri drove a corner low to the near post.
But while the Potters controlled possession during a tepid first period, Villa looked to break at every opportunity.
Carles Gil sliced a 25-yard effort off target after collecting Idrissa Gana's lay-off.
Aly Cissokho also made a couple of useful overlapping runs. On both occasions, though, his crosses just evaded team-mates.
On the stroke of half-time, Jordan Veretout nipped in ahead of Cameron to reach Hutton's pass but scuffed his effort wide across goal.
However, any notion of Villa growing into the contest was quickly extinguished by Arnautovic.
Six minutes after the restart, referee Kevin Friend pointed to the spot after Ashley Westwood caught Phil Bardsley with a high foot.
Arnautovic stepped up and powered his penalty down the middle to put the Potters ahead.
And four minutes later, the in-form Austrian got the better of Lescott to keep Afellay's floated cross in play before nudging home from close range.
The introduction of Scott Sinclair just before the hour mark provided a brief spark for Villa.
He skipped past Bardsley on the left flank before driving across the six-yard box.
Arnautovic almost bagged a third on 63 minutes, poking just wide from close range after Philipp Wollscheid sent a header goalwards.
Garde threw on Gestede for the final 13 minutes and it wasn't long before the Benin forward made an impact.
With his back to goal, Gestede held off his marker and helped Cissokho's cross into the path of Bacuna who drove across Jack Butland to make it 2-1 on 79 minutes.
In the final minute of normal time, the former Blackburn striker met a Sinclair cross with one of his trademark leaps but couldn't steer the header on target.
STOKE: Butland, Bardsley, Cameron, Wollscheid, Pieters, Whelan, Imbula, Shaqiri, Afellay (Bojan 70), Arnautovic, Walters (Joselu 70). Unused subs: Haugaard, Ireland, Diouf, Teixeira, Crouch.
VILLA: Bunn, Hutton, Okore, Lescott, Cissokho, Westwood, Gana, Bacuna, Gil (Sinclair 58), Veretout (Gestede 77), Agbonlahor. Unused subs: Guzan, Richards, Clark, Green, Lyden.