Tottenham confirmed on Friday that Defoe would leave for Toronto FC at the end of February, and the 31-year-old striker wrapped up the 2-0 win over Palace with a clinical finish in the 72nd minute at White Hart Lane.
Defoe spun away from his marker and looped a shot over Julian Speroni 15 minutes after being introduced as a substitute.
Christian Eriksen opened the scoring in the 50th.
Jason Puncheon blazed a first-half penalty high and wide for Palace following a clumsy tackle by Mousa Dembele.
A win for Tottenham looked highly unlikely in the opening stages as relegation-threatened Palace began well. Speroni spilled Nabil Bentaleb's shot to cause a brief moment of panic in the away end, but the goalkeeper gathered the ball and Palace dominated the first half.
Puncheon flashed a long-range shot just wide and he was given another chance moments later from the penalty spot. Vlad Chiriches gave the ball away up the field and Palace went on the break. Chamakh entered the box and Dembele clattered into the former Arsenal man.
Referee Michael Oliver pointed to the spot but Puncheon never came close with his wild attempt. The striker put his head in his hands while Palace manager Tony Pulis could barely look in the player's direction.
Kyle Naughton came on for Kyle Walker, who started limping shortly after the second half began.
The right-back made an immediate impression for Spurs, launching a long ball up to Emmanuel Adebayor, who knocked the ball to Eriksen and he fired a powerful half-volley past Speroni to put Spurs ahead.
Defoe almost scored with his first shot, which whistled past Speroni's far post, but made no mistake with his second effort.
The striker picked the ball up inside the Palace box from Aaron Lennon before bundling the ball past Speroni despite a shoulder barge from Jonathan Parr.