A 29-year-old man who emerged from the white pick-up truck was shot by a police officer and arrested. Officials later said it was a terror attack. Media named him as Sayfullo Saipov, an immigrant who came to the US in 2010.
A note was found in the truck that referred to so-called Islamic State (ISIS), a law enforcement source told CBS News. The suspect, who had apparently settled in Florida was taken to hospital.
New York City Mayor Bill de Blasio said it was "cowardly act of terror aimed at innocent civilians".
"We know that this action was intended to break our spirit. But we also know that New Yorkers are strong, New Yorkers are resilient and our spirit will never be moved by an act of violence and an act meant to intimidate us," he said.
New York Police Department (NYPD) Commissioner James O'Neill said the injured had "serious but non-life threatening injuries".
He described what had occurred, based on the latest information he had received if shortly after 15:00 local time (19:00 GMT), a vehicle rented from retailer Home Depot struck cyclists and pedestrians while being driven along the West St-Houston St path for many blocks.
The vehicle then hit a school bus, injuring two adults and two children on board, and came to a halt. The driver emerged holding what appeared to be two handguns and made a statement "consistent with a terror attack".
"He was shot in the abdomen by a police officer stationed near the scene. A paintball gun and a pellet gun were recovered from the scene," he said.
"The dead and injured were just going about their days, heading home from work or from school or enjoying the afternoon sun on their bicycles," the commissioner said.
"This is a tragedy of the greatest magnitude for many people, for many families here in New York and beyond today."
One witness, identified as Eugene, told ABC Channel 7 that he saw the white pick-up truck driving fast down the cycle path alongside the West Side Highway, near Stuyvesant High School, at full speed and hitting a number of people. He also reported hearing about nine or 10 shots.
Another witness, who gave his name as Frank, told local TV network NY1 that he had seen a man running around an intersection and heard five to six gunshots.
"I saw he had something in his hand, but I couldn't tell what it was. But they said that it was a gun...
"When the cops shot him, everybody started running away and it got a little bit crazy right there. So when I tried to look again, the guy was already down."
President Donald Trump tweeted: "My thoughts, condolences and prayers to the victims and families of the New York City terrorist attack. God and your country are with you!"
He had been briefed on the incident, the White House said.
In separate tweets, he said:
"In NYC, looks like another attack by a very sick and deranged person. Law enforcement is following this closely. NOT IN THE U.S.A.!"
"We must not allow ISIS to return, or enter, our country after defeating them in the Middle East and elsewhere. Enough!"