"These are significant injuries," Chris Kaufmann, the trauma medical director at Forbes Regional Hospital, told CNN.
"We had two patients who went immediately to the operating room," Kaufmann said.
The incident at the Franklin Regional High School in Murrysville, about 50 miles (80 kilometers) east of Pittsburgh, began at about 7:15 a.m. local time (1120 GMT).
Dan Stevens, a spokesman for Westmoreland County emergency management, said the suspect is a male student who has been taken into custody.
Stevens said he was cornered by police officers who rushed to the scene. His age and identity were not immediately released.
A statement on the website of the Franklin Regional School District said a "critical incident has occurred at the high school."
"All elementary schools are cancelled, the middle school and high school students are secure," the statement said.