The 36-year-old Klose scored twice in Brazil, making him the highest-scoring player in the tournament's history with 16 goals, one ahead of Ronaldo. It was Klose's fourth World Cup tournament.
With a career total of 71 goals, Klose is also the highest-scoring player for Germany. He is also the second most capped Germany player with 137 games.
"The title in Brazil fulfilled a childhood dream of mine," Klose said in a statement posted Monday on the German national team's website. "I am proud and happy that I could contribute to this great success for the German football. There is no better time to close the national team chapter."
Klose is the second member of the World Cup-winning side to step down after captain Philipp Lahm. While Lahm's retirement came as a surprise, but Klose's move was expected.
The pair's retirement will be marked at a ceremony before the Sept. 3 friendly against Argentina, the rival Germany beat 1-0 in the World Cup final. Neither will play, the German federation said.
Germany coach Joachim Loew called Klose a "world star," and "one of the greatest strikers in football."
Klose was always Loew's preferred striker and he was the only true striker in the World Cup squad in Brazil. Klose started the tournament on the bench but returned to the starting 11 when Loew decided to abandon the "false nine" formation and use a striker again.
"You can always rely on Miro Klose, he kept his word," Loew said. "The same thing happened in Brazil, I knew that Miro would be top fit when it mattered."
Born in Poland, Klose moved with his family to Germany at an early age and always played for his adopted homeland.
Klose made his debut as a substitute for Germany in a World Cup qualifier against Albania on March 24, 2001, and scored the winning goal in a 2-1 victory.
"The success of the team was always my priority," Klose said.
With 71 goals for Germany, Klose surpassed the legendary Gerd Mueller (68). Only Lothar Matthaeus played more games for Germany at 150.
Klose played for Kaiserslautern, Werder Bremen and Bayern Munich in the Bundesliga before moving to Italian club Lazio in 2011, where he has another season on his contract.