A goal in each half was enough for Stoke City to claim their third victory from three games in pre-season so far.
The Potters made a dream start as Steven Fletcher dispatched a header past Jed Steer to open the scoring on three minutes.
City 'keeper Joe Bursik made numerous smart saves to deny both Ollie Watkins and the mercurial Emi Buendia from levelling the game.
Stoke were able to keep Villa at bay in the first half, and summer signing Mario Vrancic doubled the hosts' lead five minutes into the second period with a brilliant finish.
Villa substitute Wesley's stay on the pitch was short-lived, with the striker sent off on 67 minutes for a headbutt on Nick Powell.
Story of the game
It was the first time since March 2020 that Stoke fans had seen their first team play at the bet365 Stadium, and the pre-match excitement was palpable.
The away fans had also travelled in numbers, with 2,500+ Villans making the short trip up the M6 to watch their team.
As they had in their previous game against Crewe, The Potters got off to a flying start by taking the lead with just three minutes gone.
A Stoke break allowed Nick Powell to drill a cross over to Steven Fletcher, with the 34 year-old displaying his expertise with a powerful header past Steer in the Villa net.
Ashley Young nearly levelled the scores on 12 minutes, but his free-kick landed just wide of Bursik's right post.
Stoke nearly gifted the Villans a goal seven minutes later, as Bursik had to tip Anwar El-Ghazi's shot onto the post after a mix-up in defence.
A good move on 29 minutes culminated in another smart save from the young stopper, this time denying Emi Buendia from his first goal in claret and blue.
Just five minutes into the second half, Stoke grabbed a second goal courtesy of a wonderstrike from summer signing Mario Vrancic.
The Bosnian was allowed to run at the Villa defence from central midfield, and he unleashed a brilliant shot into the top-right corner to net his first goal in red and white.
Villa swapped their whole team around with an hour gone, but there was an early bath for Wesley as he received a red card just seven minutes after coming on.
The Brazilian striker head-butted and shoved Nick Powell, in what can certainly be described as a moment of madness.
So much for a 'friendly' game.
Stoke came close to making it three in the following 25 minutes, with Danny Batth's header from a corner hitting the post.
Josh Tymon cut in and forced sub 'keeper Viljami Sinisalo into a good save on 79 minutes.
Villa came closest through Keinan Davis, as Bursik brilliantly clawed out his header that looked destined to find the net.
Michael O'Neill will be pleased with the way his team defended and managed the game, a win against Premier League opposition will certainly boost morale in the dressing room.
Dean Smith's men were in control for large parts of the game, and he will be encouraged by some slick patterns of play in attack despite the result going against his side.
The summer acquisition from Watford shone once again in the right of a back three, displaying his great aerial prowess and ability to surge forward and progress the play in an attacking sense. Definitely looks a steal for The Potters at £1.5 million.