The serviceman was identified as Maj. Nidal Malik Hasan, a 39-year-old from Virginia.
Hassan, first said to have been killed, was wounded but alive and in stable condition under military guard, said Lt. Gen. Bob Cone at Fort Hood.
Earlier, Col. Ben Danner said the suspect was shot four times and was in critical condition.
As a military psychiatrist, Hasan was due to be sent on a mission to Iraq, his cousin Nader Hasan told Fox News.
The major had been resisting such a deployment, Nader added.
“He hired a military attorney to try to have the issue resolved, pay back the government, to get out of the military. He was at the end of trying everything,” said Nader.
Retired Col. Terry Lee, who said he had worked with Hasan, told Fox News he was being sent to Afghanistan.
Lee added that Hasan had hoped Obama would pull troops out of Afghanistan and Iraq and got into frequent arguments with others in the military who supported the wars.
President Barack Obama called the shooting “a horrific outburst of violence.”
“It’s difficult enough when we lose Americans in battles overseas,” said Obama. “It is horrifying that they should come under fire at an Army base on American soil.”
Fort Hood is the largest US military base in the world and had been working to rehabilitate many soldiers suffering from post-traumatic stress syndrome.