NBC local affiliate KPRC and other local media report that there have been at least eight fatalities at Santa Fe High School, which is around 30 miles south east of Houston.
Harris County Sheriff Ed Gonzalez tweeted that the shooting is no longer active, and that those injured are being treated.
He said that one person is in custody and a second has been detained.
A police officer is also reported to be receiving treatment, with the extent of his injuries unknown.
Speaking to KPRC, one student, who escaped to safety by running into the woods, said: “I was scared for my life. No one should go through this, no one should feel that pain.”
US President Donald Trump wrote to Twitter followers: “School shooting in Texas. Early reports not looking good. God bless all!”
The school district confirmed an unspecified number of injuries but is not immediately releasing further details.
Students are being transported to another location to reunite with their parents.
One student told Houston television station KTRK that a gunman came into her first-period class and started shooting. The student says she saw one girl with a bloody leg as the class evacuated.