Having extended their unbeaten PL away run to six matches in midweek, it was the Eagles who edged a closely fought opening 20 minutes, with Mateta seeing a sharp effort across goal smartly saved by Łukasz Fabiański.
Grateful for that reprieve, West Ham looked to gain a foothold in the contest as the first half progressed, but clear-cut chances came at a premium as the visitors’ rearguard remained untroubled.
Graham Potter’s men continued to probe for a breakthrough with HT approaching, however, their only opportunity was wasted by Lucas Paquetá, who fired a speculative volley wide of the target.
The hosts’ disjointed display was punished within two minutes of the restart when Mateta raced onto a clever ball from Eberechi Eze before finishing low past Fabiański from 20 yards.
Armed with the momentum, Crystal Palace came close to doubling their advantage on the hour mark, with Maxence Lacroix seeing a close-range strike thwarted by Fabiański.
That near-miss sparked the Hammers into life as they pushed for an equaliser, but Edson Álvarez drilled wide from 25 yards as the home faithful voiced their frustrations.
West Ham’s hopes of salvaging something from the game were dealt a blow with 10 minutes remaining when Konstantinos Mavropanos was dismissed for a second yellow card after a high challenge on Mateta.
That proved to be costly as Palace doubled their lead from the spot late on, with Mateta converting after Eddie Nketiah was wiped out by Fabiański to seal a richly deserved triumph.