Palace started quickly, but they failed to carve out any early chances and then conceded a penalty after a quarter of an hour.
Referee Robert Madley came into the match having awarded more penalties than any other Premier League referee, and he made it 11 in 18 matches by pointing to the spot for Mile Jedinak's grab on Deeney as the two tussled for position at a set piece.
© Getty Images
Hornets captain Deeney, on his return to the starting lineup, was the man to take the penalty and he sent Wayne Hennessey the wrong way for his seventh league goal of the season.
Both fell Odion Ighalo's way, with the striker's first effort towards the near post kept out by Hennessey's foot before he acrobatically flicked over the top when a header might have been the better option.
Palace were on course to go in trailing, but then equalised in the final minute of the half through Emmanuel Adebayor, who scored his first goal for the club and ended his 475-day wait for a Premier League goal by looping a header over Gomes from Connor Wickham's cross.
© Getty Images
It was a goal that their play did not particularly deserve, but Palace took confidence from it and started on the front foot upon the resumption.
Wilfried Zaha swapped wings to play from the left-hand side and he seemed to enjoy himself, causing Watford's backline plenty of problems.
Gomes was called upon twice to keep Watford on level terms, first using his feet to deny Adebayor a second before Jordon Mutch's try from distance was pushed wide.
Adebayor was again denied by Gomes in the 74th minute before Watford threatened the game's third goal when Nathan Ake drilled low at Hennessey moments later.
The winning goal arrived in the 82nd minute as Deeney slammed low and hard through Hennessey after peeling away to the back post and bringing the ball down following Damien Delaney's flicked header from Ben Watson's inviting cross.
Palace pushed for a second equaliser, but Cabaye's well-struck volley came back off the post before Joel Ward headed over in the seventh minute of stoppage time after Eagles left-back Pape Souare had been shown a straight red card for a rash challenge.