Trump last month announced a new Afghanistan policy to knock back the Taliban, who are continuing to mount deadly attacks, control large areas of territory and are killing local Afghan forces in the thousands.
Mattis told Pentagon reporters that he didn't want to give precise numbers but said he was sending "exactly over 3,000" troops to Afghanistan, where they will bolster the approximately 11,000 American forces already there.
"Most of them are on their way or under orders now and I'd prefer not to give any more information that helps the enemy."
US generals have for months been calling the situation in Afghanistan a "stalemate," despite years of support for Afghan partners, continued help from a NATO coalition and an overall cost in fighting and reconstruction to the United States of more than USD 1 trillion.
More From This Section
The war turns 16 next month, and is America's longest- ever conflict.
Trump, who had previously advocated a US withdrawal from Afghanistan, changed his mind after US military leaders convinced him that the costs of pulling out would be worse than remaining.
The United States is also pressing for NATO partners to increase their own troop levels in Afghanistan.