Marks out of 10 for Crystal Palace and West Ham.
Crystal Palace
Nico Vaesen: Produced the save of the game from Lomas when the game was goalless and was solid as a rock throughout in a man-of-the-match display.
Danny Butterfield: His battle with Etherington was always going to be crucial and the tireless Butterfield easily came out on top.
Tony Popovic: Was only caught napping once by a long ball over the top but otherwise effectively kept the Hammers attackers quiet.
Mikele Leigertwood: Took time to settle after a nervous start but his pace and power was a vital asset for Palace at the back.
Danny Granville: Was well on top of Harewood on his flank and was able to get forward regularly to give Hughes some support when needed.
Wayne Routledge: Was a big threat early on with his pace on the right but his final ball often let him down. Faded badly in the second half.
Aki Riihilahti: Never stopped running in the centre of the park for the whole 90 minutes although some of his passing was a little over-ambitious.
Shaun Derry: Another tireless worker who worked hard to win possession and tried to use the ball intelligently when he had it.
Michael Hughes: Produced the occasional flash of skill in a hectic first half and his influence grew as the game went on.
Neil Shipperley: Virtually anonymous for an hour until he found himself in the right place at the right time to tap home the winner from three yards.
Andrew Johnson: Failed to take a good early chance but continued to work hard - and Shipperley's goal was down to his industry.
Substitutes
Darren Powell (replaced Butterfield, 68 mins): Carried on where Butterfield left off with a steady display in the closing stages.
West Ham
Stephen Bywater: After a shaky start he made two key first-half saves but should have done better with Shipperley's goal.
Tomas Repka: Committed as ever but still prone to rash decisions and gave away some unneccessary free-kicks in dangerous areas.
Andy Melville: A steadying influence in the Hammers defence but his lack of mobility was exposed at times when Johnson ran at him with the ball.
Christian Dailly: Solid enough at the back but should have done better at the other end when he failed to connect properly with a first-half header.
Hayden Mullins: Given a torrid time at first by his former team-mate Routledge but eventually he worked out how to keep the winger quiet.
Marlon Harewood: Lacked service on his flank and was never given the chance to use his pace and power with the ball at his feet.
Michael Carrick: Sometimes guilty of trying to be too clever and only showed his class once with a single searching ball over the top.
Steve Lomas: A typical battling performance and almost grabbed a rare goal when his dipping effort brought the best out of Vaesen.
Matthew Etherington: Came inside to try and escape the attentions of Butterfield but was still unable to make his mark on the game.
David Connolly: Saw enough of the ball but in the wrong areas. He disappointed when he did try his luck on goal and was eventually taken off.
Bobby Zamora: Wasted the best chance of the first-half and did not seem to put in the required effort against a determined Palace defence.
Substitutes
Brian Deane (replaced Zamora, 68 mins): The target of some long balls pumped into the box but was unable to make the most of any of them.
Nigel Reo-Coker (replaced Harewood, 68 mins): Immediately more effective than Harewood on the right flank but to no avail.
Don Hutchison (replaced Connolly, 74 mins): Joined the Hammers attack but did not see enough of the ball to change the outcome.