Harris County Sheriff Ed Gonzalez told reporters the majority of the dead at Santa Fe High School were students.
A student is in custody after the attack at the school, which is about 40 miles (65km) south of Houston.
The death toll makes this the deadliest school shooting since the one in February at Parkland, Florida.
That attack left 17 dead and spawned a nationwide youth-led campaign for gun control. The Texas school district confirmed that people were injured in an “active shooter” incident as classes began on Friday morning.