Harry Kane fired us into the lead four minutes into the second half, but a penalty from Dwight Gayle - awarded after Benji Stambouli was adjudged to have fouled Joe Ledley - in the 69th minute restored parity.
Jason Puncheon won it for the Eagles with 10 minutes remaining.
Spurs: Lloris (c), Walker, Fazio, Vertonghen, Rose; Dembele, Stambouli (Soldado 76); Chadli, Eriksen, Townsend (Capoue 70); Kane. Substitutes (not used): Vorm, Davies, Kaboul, Lennon, Paulinho.
Crystal Palace: Speroni, Kelly, Delaney, Dann, Ward, Puncheon, McArthur, Bannan (Guedioura 46), Ledley, Gayle (Campbell 88), Murray (Zaha 75). Substitutes (not used): Hennessey, Mariappa, Hangeland, Thomas.
Goals: Crystal Palace – Gayle (pen) 69, Puncheon 80; Spurs – Kane 49.
Yellow cards: Crystal Palace – Bannan 37, Dann 45, Puncheon 77, Campbell 90+1; Spurs – Townsend 24, Stambouli 55, Fazio 90+1.
Referee: Anthony Taylor.