The 30-year-old joined Palace from Liverpool in 2016 for a club record fee.
Benteke, part of Belgium’s squad for this summer’s European Championship, joined Palace from Liverpool in 2016 for a club record fee.
The 30-year-old has scored 31 goals in 137 Premier League appearances for the Selhurst Park outfit, including netting 10 times in 30 matches in 2020-21.
Benteke said on Palace’s official website: “I’m happy and proud to commit my future to Crystal Palace.
“Five years already and still a lot more to come. We have a great group of players and staff, and I’m looking forward to the season ahead and playing in front of our fans again.”
Chairman Steve Parish said: “Christian has been an integral part of consolidating our position as an established Premier League club over the last five years.
“He is an outstanding professional and has more than proven that he still has the quality and the hunger to perform for our club at the highest level, and I couldn’t be happier to see him in red and blue for another two seasons.”
Palace, who finished 14th in the league, are currently searching for a new manager following Roy Hodgson’s decision to step down as boss at the end of the season.