Forest's third victory of the season in their final game before the World Cup break lifted them off the bottom of the standings to 18th place on 13 points, one ahead of Southampton, who lost 3-1 to Liverpool, and three ahead of Wolves, who face leaders Arsenal later on Saturday.
Still searching for his first Premier League goal for Forest, the 29-year-old came steaming in at the far post in the 16th minute but he couldn't get a touch on a cross-shot from Brennan Johnson and the ball flew wide.
The lively Lingard thought he had won a penalty when he was tripped in the 29th minute by Tyrick Mitchell, but the foul took place just outside the penalty area and only resulted in a free kick and a yellow card for the Palace defender.
Instead, it was Palace who were awarded a spot-kick when Joe Worrall brought down Zaha just before halftime. Zaha took the penalty himself but fired wide.
With neither side managing to get many shots on target, Gibbs-White finally put the ball in the net in the 54th minute after pouncing on the rebound from a Johnson shot, and though the assistant referee initially ruled he was offside, the goal was allowed to stand after a lengthy VAR review.
Lingard could have killed the game off in the 75th minute after a brilliant Forest attack in which Gibbs-White picked out Brennan in the box. However, Lingard hit Brennan's pass wide of the right-hand post with the goal at his mercy.
Palace left plenty of space for Forest to exploit as they poured forward looking for an equaliser, but the home side hung on for a much-needed win.