A police commissioner at the scene confirmed that at least 27 people had died. Several others are reported to be injured.
The shooting took place at the First Baptist Church in Sutherland Springs, a small community about 30 miles (50 kilometres) southeast of San Antonio, reports said.
They said the shooter walked into the church shortly before noon — at a morning service that witnesses said was normally attended by some 50 people — and opened fire. A two-year-old was among the wounded, the Dallas Morning News website reported.
There were “multiple fatalities and multiple wounded,” according to Wilson County Commissioner Albert Gamez Jr., NBC News reported.
A spokeswoman for Connally Memorial Medical Center in nearby Floresville told Fox News that “we have accepted a number of patients from the shooting.” She gave no number.
Helicopters and emergency personnel were arriving at the scene, and agents of the Bureau of Alcohol, Tobacco, Firearms and Explosives were heading to the scene, the bureau said.
The shooting comes just over a month after a gunman in Las Vegas, firing down from a hotel room, killed 58 people and wounded hundreds attending an outdoor concert.
And it came just over two years after a white supremacist, Dylann Roof, entered a historically black church in Charleston, South Carolina, and shot nine people to death.
This is a developing story and will be updated as further reports are received.