Palace went ahead after nine minutes when defender Danny Gabbidon turned in a corner after a scramble in the penalty box.
Sunderland responded well but Ondrej Celustka's cross failed to find anyone.
Puncheon came closer 10 minutes before the break, but his run at the Sunderland defence resulted in another missed opportunity.
The lead was almost doubled when Mile Jedinak picked up the ball 25 yards from goal, but his shot missed the target.
Gabbidon was required to block Emanuele Giaccherini's shot just before the referee blew for half time.