Match ends, Stoke City 2, Aston Villa 1.
Peter Crouch scored the winner against former club Aston Villa as he helped Stoke extend their unbeaten home league run to six games.
Charlie Adam gave the Potters the lead when he latched on to a Crouch knockdown before tucking in a shot.
Libor Kozak pounced on a poor headed backpass from Erik Pieters to slot in a Villa equaliser.
But after keeper Brad Guzan missed a cross, the ball fell for Crouch to net from close range and move Stoke 10th.
The closest Villa went to a second leveller was when Stoke keeper Asmir Begovic tipped over a dipping Kozak strike but the Midlands side could not prevent a third straight defeat.
The visitors had earned more points on their travels than at home this season and Paul Lambert's side had the better of rare first half goal-scoring opportunities.
Villa centre-back Nathan Baker went close when he latched on to an Ashley Westwood cross, but his diving header was saved by Begovic.
The Stoke stopper also gratefully gathered a shot from Aleksandar Tonev shot after the Potters had failed to clear a cross from Villa winger Marc Albrighton.
The home side also escaped what the visitors thought should have been a red card for Marc Wilson. The defender lost control of the ball and then in trying to retrieve the situation fouled forward Andreas Weimann, who argued he would have been clean through on goal.
Stoke had struggled to create but did inadvertently go close when Geoff Cameron's cross turned into a shot which Villa keeper Brad Guzan had to tip over his crossbar.
The home side also gave the visitors a scare when winger Oussama Assaidi's cross was only partially cleared by centre-back Ciaran Clark and Potters forward Marko Arnautovic had a shot blocked by Baker.
Stoke boss Mark Hughes had cut an agitated figure on the touchline in the first half and his move to bring on Adam for Arnautovic at the break had an immediate effect.
A long diagonal ball was knocked down by Crouch for the Scottish midfielder, who controlled the ball on his chest before scoring with an angled shot across goal.
However, a defensive blunder allowed Villa back into the game when a long goal-kick from Guzan was headed by Wilson to Pieters, whose attempt to nod the ball back to Begovic was too tame and allowed Kozak to slot in an equaliser.
There was a marked improvement in the second half and Stoke restored their lead when Cameron's cross went under Guzan and struck Crouch on the chest before the forward shot into an empty net.
Crouch also diverted a late shot against the post but, despite Kozak's strike being saved by Begovic, Stoke comfortably secured victory.
Stoke boss Mark Hughes:
"It was difficult for us in the first half. We were against the wind. We set our stall out in the second half when the wind was with us.
"Peter Crouch, among others, did well. He gave us a focal point and we scored two good goals. I felt we did enough to win the game.
"We are doing ok. We are going in the direction. We want to kick on from this point onwards. We have worked hard in first part of season and we need to continue that."
Aston Villa manager Paul Lambert: "I thought we were excellent in the first half. The wind was very strong but even in the second half we had chances. It was a very close game.
"We thought when we got it 1-1 that we might have gone on. We will go again. I don't think we deserved to lose."
On the decision not to send off Marc Wilson, he added: "You have got to respect the decisions and sometimes you get them and sometimes you don't"
- 12WilsonBooked at 26mins
- 10ArnautovicSubstituted forAdamat 45'minutes
- 24AssaidiSubstituted forPennantat 72'minutes
- 6ClarkBooked at 50mins
- 15WestwoodBooked at 85mins
- 17HerdBooked at 61mins
- 12AlbrightonBooked at 21minsSubstituted forBacunaat 81'minutes
- 16DelphBooked at 60mins
- 24TonevSubstituted forBoweryat 67'minutes
- 8El Ahmadi
- Craig Pawson
- Shots on Target
Second Half ends, Stoke City 2, Aston Villa 1.
Offside, Aston Villa. Matthew Lowton tries a through ball, but Andreas Weimann is caught offside.
Jermaine Pennant (Stoke City) wins a free kick in the defensive half.
Foul by Jordan Bowery (Aston Villa).
Corner, Aston Villa. Conceded by Jonathan Walters.
Foul by Glenn Whelan (Stoke City).
Andreas Weimann (Aston Villa) wins a free kick in the attacking half.
Ashley Westwood (Aston Villa) is shown the yellow card for a bad foul.
Steven N'Zonzi (Stoke City) wins a free kick in the defensive half.
Foul by Ashley Westwood (Aston Villa).
Offside, Stoke City. Glenn Whelan tries a through ball, but Jermaine Pennant is caught offside.
Substitution, Aston Villa. Leandro Bacuna replaces Marc Albrighton.
Foul by Steven N'Zonzi (Stoke City).
Fabian Delph (Aston Villa) wins a free kick in the defensive half.
Attempt missed. Ashley Westwood (Aston Villa) right footed shot from outside the box is high and wide to the right.
Attempt blocked. Marc Albrighton (Aston Villa) right footed shot from outside the box is blocked. Assisted by Libor Kozák.
Foul by Glenn Whelan (Stoke City).
Andreas Weimann (Aston Villa) wins a free kick on the right wing.
Foul by Peter Crouch (Stoke City).