The 29-year-old’s future had been a source of constant speculation in recent months after talks over a new deal stalled and with his contract set to expire next summer.
Arsenal and Liverpool were both linked with a possible move for the former Ajax man, but he has now put pen to paper on a deal which will keep him at the Bundesliga outfit until 2015.
“I have thought long and hard about this decision and I am very grateful to Schalke 04 for giving me this time. But now I have made the decision and I have the best feeling,” said Huntelaar.
“I’ve always felt comfortable at Schalke, the club and its fans and I now want to send out a positive sign because I believe in our team.”
Huntelaar has scored 71 goals in 104 appearances for Schalke after joining the club from AC Milan in 2010.
MORE: Latest Man Utd news
MORE: Latest Arsenal news
MORE: The latest football news