Made a good save from Peter Odemwingie but that was after letting in three goals, about which he could do little.
Won some headers, as is often the case, but was let down by Leandro Bacuna and Nathan Baker.
Was dominated in the air by Peter Crouch for Stoke's first, drifted away from Crouch for the second and then spectacularly failed to deal with a simple pass which lead to the third. Booked late on to complete a poor afternoon.
His intelligent ball allowed Fabian Delph to set up the opener but he was caught out on occasion, allowing players in behind on his side.
Did not get close enough to Marko Arnautovic for the equaliser, failed to cut out a pass in the build-up to the third and was waltzed past for the fourth. Played some poor passes which got the home crowd's backs up. Booked.
His Set-piece delivery was poor and he was jeered for taking his time on the ball, though that may say more about the home fans than his own urgency. Lucky to get away without a booking. Substituted.
K. El Ahmadi
Booked in the opening exchanges for a very robust tackle on Peter Crouch and went off injured during the first half.
Did well on the left to set up Christian Benteke for the first but his passing in the middle was mixed. Not as much energy or invention as against Chelsea last Saturday, which could be said about everybody but Delph in particular.
Tried to link up with Benteke but the Stoke line marshalled their passes well. Did not have the opportunity to use his pace, the key weapon in his arsenal.
Slipped at the vital moment, which made Stoke's task easier when scoring their second. Went off shortly afterwards with an injury.
Fired in a great strike to get his side started early on but struggled to make much of a mark after that despite some neat footwork. Booked for dissent.
Misjudged a couple of set-pieces but got away with them. No chance with Christian Benteke's goal and had little else to do.
Got the better of Andreas Weimann to set up Peter Crouch for the Potters' second goal and always looked to support Marko Arnautovic going forward. Substituted late on but played well.
Like Ryan Shawcross, was assured in his defensive duties and grew more and more confident as Villa's threat waned as the game wore on.
Looked assured in his defensive duties though went for long periods without any Villa pressure. Dominant in the air as the hosts turned to crosses late on.
Got forward well whenever possible and looked solid at the back without doing anything too impressive until he steered in his side's fourth at the death.
Part of a midfield which looked extremely capable in possession, knocking the ball around the Villa players at will.
Booked for a bad foul on Christian Benteke but looked good in possession and kept his position at the base of the midfield.
Used the ball very well, dropped into spaces, covered a lot of ground in the midfield and scored Stoke's third with a calm finish. A reference point in the middle for his side.
Went close with a fine effort from outside the box early on and equalised with a clever finish shortly afterwards. Dropped back to help out on the right side of defence on occasion and provided a good outlet in attack.
Used his aerial ability perfectly to set up the equaliser and then finished smartly for the visitors' second. Did not get too many headers to win given his side's neat play in possession but more than held his own when called into action.
Set Erik Pieters free in the build-up to the visitors' second with a clever backheel. Looked confident and was inventive in possession. Set up Geoff Cameron late on, too. Stoke's best performer on a fine afternoon all round.
Came on in the first half and did very little of use. Was booked for foul on Wilson Palacios but could have easily gone in the book beforehand.
Came on in the first half and quickly made a good tackle in the area but then lost possession easily, which summed up a mixed game.
Came on, presumably for a late aerial assault, but was marshalled easily by the Stoke centre-backs. Did very little.