Specialist Ivan Lopez, 34, was denied leave to attend to family matters, officials speaking on condition of anonymity told US media.
He also wounded 16 people before shooting himself at the Fort Hood base.
The soldier’s father said on Friday he “could not have been in his right frame of mind” during the attack.
Spc Lopez is alleged to have walked into one of the buildings of the Fort Hood base and opened fire with a .45-calibre semi-automatic pistol.
He then got into a vehicle and continued firing before entering another building and opening fire again. He was eventually stopped by military police, shooting himself in the head when confronted by a female officer in the car park, officials say.
‘Agitated and disrespectful’
The New York Times, quoting an unnamed official, said Spc Lopez was agitated and disrespectful when his request for leave was denied.
He had reportedly sought time off to deal with family matters relating to the recent death of his mother.
An Army spokesman declined to comment on the nature of the argument but confirmed that the soldier had become angry with other members of his unit before the attack. Two of those killed belonged to his unit.