The attack happened at the First Baptist Church in Sutherland Springs, a small town in Wilson County. The victims’ ages ranged from five to 72.
The suspected gunman was later found dead in his vehicle some miles away.
Police identified him only as a “young, white male” but US media named him as Devin Patrick Kelley, 26.
Kelley is reported to have been discharged from the US air force in 2014 following a court martial for assaulting his wife and child.
The motive for the killings was not immediately clear.