"People were just running out of the stores, ducking behind anything they could find — screaming, kids were screaming, everybody running," Keith Lazarchik told ABC's "Good Morning America."
"It was basically just a split-second decision," Lazarchik said. "I didn't approach him right away. I just followed him. I was creeping up behind him as he was walking down the mall shooting."
When the gunman, identified by police as Robert Bonelli, ran out of ammunition and dropped his assault-type rifle, Lazarchik lunged for the gun and two of his co-workers tackled the gunman.
According to police, Bonelli opened fire Sunday afternoon inside the Best Buy store in the Hudson Valley Mall, just outside Kingston, 90 miles north of New York City.
After firing several shots, he made his way into the mall corridor and continued shooting until running out of ammunition near the center court, witnesses said.
Bonelli, 24, of nearby Saugerties, was being held without bail on first- and second-degree assault and reckless endangerment charges, said Brian Woltman, a dispatcher for the Town of Ulster Police Department. He was arraigned early Monday in Ulster Town Court.
Lazarchik said he did not know the gunman had run out of ammunition when he dropped his weapon. After the gunman was tackled and pinned, he said it was "over" and he had no other weapons, witnesses said.
State police Capt. Wayne Olson said investigators did not know the exact number of shots fired but he said it was a "significant number of rounds." Police did not cite a motive for the shooting.
The wounded included a National Guard recruiter who was in a recruiting booth inside the mall when he was shot. Olson said the 20-year-old recruiter might lose his leg. Hospital officials said Monday that his family asked that no information on his condition be released.
The second victim, a 56-year-old man, had superficial gunshot wounds to his left arm, thigh and leg, Olson said. Two other people had bullet holes in their pant legs, Olson said.