It's believed the people killed were run over by the truck, rather than being shot, as police told media the was carrying fake guns.
Stuyvesant High School student Tawhid Kabir, 20, told news.com.au from near the scene: "I came out and saw a cop. "I thought it was an accident so I went to see what happened."
He saw a man with "two guns".
"He was running in the middle of the street. There was another guy not in a cop uniform who was also chasing him."
The students all dropped to the ground when the shots rang out.
"When I heard the gunshots I was so scared."
"There was a car crash, says Laith Bahlouli, 14, another Stuyvesant student. "He came out of one of the cars. He had two guns. He was running around Chambers and somebody started to chase him.
"I heard four to six gunshots - everybody starts running."
Witnesses described a scene of terror, saying the shooter ran over two people before ploughing into a school bus.
"Jesus! A car just ran over 2 people and then crashed into a school bus. I see two dead bodies and citibikes on the floor destroyed," a Twitter user wrote.
The suspect then got out of his vehicle with two guns, another witness said.
Video of the scene shows at least two people lying in the street.
Photos show a smashed up Home Depot rental truck, and two mangled Citi Bikes, which are available for hire on New York streets.
Counter-terror police were searching the truck for explosives.
Uber driver Chen Yi said he saw a truck plough into people on a popular bike path adjacent to the West Side Highway. He said he then heard seven to eight shots and then police pointing a gun at a man kneeling on the pavement.
"I saw a lot of blood over there. A lot of people on the ground," Yi said.
His passenger, Dmitry Metlitsky, said he also saw police standing near a man who was on his knees with his hands up, and another man bleeding on the ground nearby. He said the truck had also collided with a small school bus and one other vehicle.
A witness told ABC's New York station WABC: "Everybody started running. [The driver] kept going all the way down full speed."
Had the attack happened later, the street would have been full of trick-or-treaters, the witness added.
The FBI Joint Terrorism Task Force has joined the NYPD on the scene, according to NBC.