The 29-year-old, who was out of contract in the summer, had been linked with a January move to Premier League side Arsenal.
"I have thought long and hard over this decision and I am very grateful that the bosses at Schalke gave me this time," the Holland striker said on the club's official website.
Huntelaar added: "Now I have made the decision which gave me the best feeling.
"I have always felt comfortable at Schalke, with the club and the fans.
"Now I want to send out a positive sign, because I believe in this team and that we can still achieve a lot in the second half of the Bundesliga season.
"And we are of course not without chance against Galatasaray in the last 16 of the Champions League."
Keeping hold of the prolific frontman is a major boost for new Royal Blues coach Jens Keller just seven days into this reign.
Keller was promoted last weekend from coaching the under-17 side to succeed the sacked Huub Stevens until at least the end of the season.
Schalke went into the winter break in a sorry state, having slipped to seventh place in the table following a run of two points from six games.
The club's sporting director Horst Heldt said: "I am pleased that Klaas Jan has now sent a clear sign to the whole club for the second half of the season."
The striker, who was a reported target for Arsenal in the transfer window, joined Schalke from AC Milan in 2010. He previously played for Real Madrid, Ajax and Heerenveen.