The incident started unfolding around 12:30 p.m., prompting all Jersey City schools to go on lockdown.
[Ads /]
"When someone said get down we all ran to the side of the room and then that's where it all started," said one student named Kristina. "We started crying and running."
"We heard lockdown, lockdown, lockdown from the principal over the intercom," said teacher's aide Justin Tucker.
Inside more than 40 schools across the city, teachers shut off lights, closed window shades, banned social media and sat for hours.
"Some of the kids were in distress, I'll be honest with you," said Tucker. "Some didn't want to stay there."
Officials said all of the city's 30,000 students in 43 schools were accounted for and safe.
[Ads /]
Among those locked down were students at Sacred Heart School, a pre-K through 8th grade Catholic school on Bayview Avenue near the shooting scene.
A systematic release began at 4:15 p.m., however, nearly 30 minutes later, students at some schools still had not been released, upsetting parents who wanted to be reunited with their children.
ABC News talked to one father, Juan Cabrera, who heard through scanner traffic that there was a shooting happening near his children's school. He rushed over hoping to get his kids pulled out of class before police blocked the streets but it was too late.
His kid started texting him from their school basement where the cafeteria is located.
Because the shooting happened around lunchtime they were already away from windows and out of harms reach - unaware of the carnage that was happening just blocks away.
Hours later, he reunited with his children, twins Rachel and David.
[Ads /]
Juan says he's now going to take them to get ice cream.
"It's very nerve-wracking," said another parent, Nicole Scott. "It brings you to tears. It's scary, it's scary. Our kids need better than this. They need better."
On Wednesday, the Jersey City Public Schools will have a delayed opening.
----------
* More New Jersey news
* Send us a news tip
* Download the abc7NY app for breaking news alerts
* Follow us on YouTube