TROUTDALE -- One student was shot to death, a teacher injured and the teen gunman was dead after gunfire broke out inside Reynolds High School in Troutdale Tuesday morning, police said.
The student victim was later identified as freshman Emilio Hoffman, described as a "great kid" who loved playing on the school soccer team.
Law enforcement sources told NBC news the shooter was a student, but the name of the gunman was withheld until his family was notified.
The shooting started just after 8 a.m. Tuesday. Police Chief Scott Anderson said the gunman entered through the gym and shot Hoffman in the boys' locker room.
Todd Rispler, a PE teacher and track coach at the school, was also wounded. Despite his injury, Rispler managed to initiate the school lockdown procedure, likely saving countless lives, according to Anderson. Rispler told KGW he was grazed by a bullet on his hip, but he was not seriously hurt.
Students said it sounded like fireworks were going off inside the school.
Photos: Shooting scene at Reynolds HS
"It was really scary in there," said student Kaitlyn. "We thought it was a drill, but it was real. The cops came in. I never thought that would happen.”
"I personally was in a classroom with a lot of girls, so they were kind of hysterical. I was trying to keep calm, especially when we were being evacuated. I think it was more tears of joy that we were all being evacuated. We were just happy we were safe and being taken care of," said student Taylor.
SWAT officers quickly surrounded the campus and searched each hallway and classroom as students filed out with their hands on their heads.
"They told us to turn the lights off. It was pretty scary, it was really scary. All we heard were silent hallways. Then we heard police muffled through the walls 45 minutes to an hour," another student told KGW.
In their own words: Students describe scene at school
Just over an hour later, police confirmed that the lone gunman was dead and the campus was "stabilized."
Police said the gunman was a teenager, but they have not confirmed if he was a Reynolds student. They said he was found dead in a school bathroom and likely killed himself.
A robot with a camera used to investigate the shooting found the suspect slumped over in a bathroom stall, according to police spokesman Sgt. Carey Kaer.
Troutdale Police Chief Scott Anderson said one other person was found on campus with a gun and was arrested.
As SWAT teams continued to work their way through the school, evacuated students were bused to a nearby grocery store parking lot.
"Raise your hand if you see your kid," said Lt. Steve Alexander of the Multnomah County sheriff's office. "We'll get you to them."
A mass crowd of parents stood behind police tape, eagerly waiting to hear their child's name called out.
I'm just scared to death," one waiting mother told KGW. "I just can't even describe it."
One-by-one, each student was cleared by police and then came forward to connect with family members, until the chaos in the parking lot transformed into hugs and tears of joy with everyone reunited.
Watch Video: Emotional reunions of Reynolds parents, children
Another student who had just reunited with his mother told KGW "It feels good to be back with her."
News of the one victim in the shooting slowly began to filter into the crowd outside the Fred Meyer store.
"I just pray for their family. I don't even want to know who it is," one mother told KGW.
"I am panicking. I don't know how this could happen. They have police on campus. How could this have happened? Why isn't there better protection for our students after all the shootings that have happened in all the weeks and weeks. I don't get it, I don't understand," another mother said.
Superintendent Linda Florence commended her staff and police for protecting students as fast as they could.
“This is such a tragedy. My heart goes out to the individuals involved and to their parents," Florence said. "We're closing Reynolds High School until further notice."
More: Instructions for parents