Had very little to do but pulled off a world-class save from Weimann late on.
Often looked long in search of Jerome or, later, Chamakh and usually found his intended target. Had little to do defensively but mopped up effectively whenever he needed to.
Tidy in possession and firm in the tackle, he went about his defensive duties with a minimum of fuss.
Made a nasty challenge on Delph early on but provided a gorgeous cross for Chamakh, with the ex-Arsenal man heading narrowly wide.
Looked to feed Bolasie whenever possible, often limiting his own attacking threat as a result, but performed well whenever Villa attacked.
Made a number of attacking runs in search of a goalscoring opportunity but saw little reward. Tidy on the ball in midfield, however.
Fought a running battle with Lowton and often bested his marker, with his trickery creating openings. Denied a first-half penalty but provided the cross for Puncheon's vital goal and was his team's most dangerous player by some stretch until he was replaced late on.
Withdrawn early on after picking up an injury, with Chamakh his replacement.
Tasked with providing a screen in front of his defence and did so well. A calming presence on the ball, with his short passes often dictating the tempo.
Pushed to the byeline whenever he could and used the overlapping Mariappa intelligently before opening the scoring with a tidy finish from just inside the box. It could prove to be the most important goal that he ever scores.
Made a vital goal-line clearance early on but was guilty of wasting Palace's best opening before Puncheon's strike, with his effort from six yards crashing against the crossbar with the goal gaping. Replaced by Murray late on.
By far the busier of the two goalkeepers, he commanded his area well but could have done better with Palace's goal, with the ball simply trickling past his outstretched palm.
Tasked with keeping Bolasie quiet and struggled to contain the livewire winger, as he was often wrong-footed by his opponent's nifty footwork. Suffered a nasty knock in a 50-50 but carried on well.
Saw a header cleared off the line by Jerome and stood tall in the face of Palace's numerous forays forward, though he was nowhere to be seen when the hosts scored.
Cool and composed in possession, he often drifted forward in a bid to kick-start attacks for the away side. Booked for a reckless tackle on Puncheon in the second half.
Coped well with the physicality of Jerome and Chamakh and pressed forward whenever possible.
Lost Puncheon in the build-up to his goal and had little impact when he crossed the halfway line. Booked for a cynical foul on the winger and was replaced by Albrighton with Villa chasing the game.
Looked to dictate the tempo from the base of midfield but struggled to carve out any clear-cut opportunities for his side.
K. El Ahmadi
Often drifted wide in search of the ball but had little impact, with Ward diligent in his defensive duties. Replaced by Weimann late on.
Composed on the ball whenever it came his way but could not truly impact proceedings as he would have liked.
Saw the threat of his pace limited by Palace's stifling tactics, with two men often marking him at once. An anonymous display when Villa needed him most.
A target for crosses throughout, with his muscular frame causing problems for the Palace defence. He also dropped back on occasion to help out his own back line in a committed display, though he could not test Speroni.