The 28-year-old Germany international joined Gladbach in 2016 from Bayer Leverkusen after enjoying the 2013-2014 and 2014-2015 seasons on loan at Borussia-Park.
Kramer's contract was due to run out at the end of the season, but he has agreed fresh terms to stay on for another three-and-a-half years.
Sporting director Max Eberl told the club's official website: "Christoph has become one of the leading figures in our team in recent years. Both as a footballer and as an opinionated character in the dressing room, he's become massively important and we're pleased to be extending his contract."
Midfielder Kramer has appeared 171 times for Gladbach in all competitions, scoring 10 goals.
Marco Rose's side lead the way at the top of Bundesliga after winning nine of their opening 13 matches.