Crystal Palace inched their way towards Premier League safety after Jason Puncheon handed them a 1-0 win over Aston Villa.