Police said 32-year-old Jose Flores was taken into custody Thursday night near Raleigh, North Carolina.
The bus was traveling from Virginia to North Carolina when witnesses said Flores pulled a gun on the bus driver and threatened to kill the 35 passengers. They said Flores told them to get off the bus, but many stood there frozen.
"We were too scared," said bus passenger Robert Fusco. "We didn't know if he was going to shoot us in the back of the head for getting off the bus."
"He just kept yelling, 'Y'all got a problem?'" said bus passenger Xavier Little. "'Y'all going to do something? I got nine shots, and I'll start killing right from the front'."
A driver passing by saw what was going on and called 911. Police were waiting for Flores when he pulled off the highway and stopped at a gas station. Officers had to use a stun gun to subdue him.
No one was hurt in the incident. Jail officials said Flores is charged with kidnapping. Police haven't discussed a motive.
The Associated Press contributed to this article