A 16 year-old boy is in custody after a knife attack at a high school near Pittsburgh left at least 20 people injured. Police say among the injured is a school police officer who stopped the attacker with the help of an assistant principal.

NPR's Jeff Brady reports the rampage began just before classes were about to start this morning.

JEFF BRADY, BYLINE: At Franklin Regional Senior High School, east of Pittsburgh, student Josiah Wages says he was eating breakfast in the cafeteria.

JOSIAH WAGES: And me and my friend, just all of the sudden, we heard screaming and people running through the cafeteria. And we were like, that's weird, because we didn't know why and then the fire alarm went off at that point.

BRADY: Police say whoever set off the fire alarm likely saved more people from being injured because students and staff started evacuating the school. They escaped the grisly scene that student Gracey Evans told the Pittsburgh Post-Gazette she saw.

GRACEY EVANS: This kid comes down the hallway with two knives in his hand and just stabbing people. And my best friend, he went in front of me to protect me from getting stabbed.

BRADY: Evans says her friend was among the injured, many of them rushed to nearby hospitals. One of the most-severely injured students was a 17-year old senior. Dr. Louis Alarcon, with Children's Hospital of Pittsburgh, says the student was immediately taken into surgery.

LOUIS ALARCON: He sustained a single, life-threatening stab wound to the left side of his torso. He arrived with a very low blood pressure and evidence of massive bleeding within his chest and abdomen.

BRADY: Alarcon says the student will need more surgery but fully expects him to survive the injuries. Some of the victims who received less serious injuries already have been released from local hospitals.

Meanwhile it's not yet clear what was the motive for the attack. Court documents show the suspect is 16-year-old sophomore Alex Hribal. Police say he was treated for injuries to his hands. Hribal is charged with four counts of attempted homicide and 21 counts of aggravated assault.

Westmoreland County District Attorney John Peck says there are still witnesses who need to be interviewed.

JOHN PECK: Fortunately we've been aided in this investigation by the FBI and state police, and the local police departments. So we're confronted with an enormous amount of information that we need to obtain from people who are victims and people who are witnesses to these events.

BRADY: As the investigation continues, the high school will be closed for several days. Jeff Brady, NPR News. Transcript provided by NPR, Copyright NPR.