About 6,400 troops will be sent home, with the rest moved to other Nato countries such as Italy and Belgium.
President Donald Trump said the move was a response to Germany failing to meet Nato targets on defence spending.
But it has attracted widespread opposition in Congress from those who believe it will embolden Russia.
Senior German officials have also expressed concern.
“We don’t want to be the suckers anymore,” Mr Trump told reporters at the White House on Wednesday shortly after the move was announced. “We’re reducing the force because they’re not paying their bills; it’s very simple.”
Mr Trump has long complained that European members of Nato should spend more on their own defence. He has said that Nato members should no longer be relying so heavily on the US to shoulder the costs of maintaining the alliance.
The argument between the allies focuses around the target agreed by all alliance members that defence spending should reach 2% of GDP (gross domestic product, the total value of goods produced and services provided in a country) by 2024. Germany, along with many other countries, has yet to meet this target.
Defence Secretary Mark Esper struck a different tone when announcing the decision, suggesting it was part of a broader plan to reposition US forces in the region.
He said it was “a major…