Officer Ryan Nash, 28, works in the New York Police Department's 1st precinct, shot and apprehended the suspect Sayfullo Habibullaevic Saipov, who crashed a pickup truck into a school bus and hit cyclists and pedestrians, killing eight people and injuring 11 others.
After exiting from the vehicle, Saipov was brandishing two guns, which turned out to be a paintball gun and a pellet gun.
Police said 29-year-old Saipov, an Uzbek national, did not comply with orders to drop the weapons and Nash opened fire, striking him in the midsection.
Shortly after Saipov crashed into the bus, Nash "confronted the subject and shot him in the abdomen," Police Commissioner James P O'Neill said during a press conference following the attack.
O'Neill was quick to praise Nash, who he said "stopped the carnage" in lower Manhattan.
"I want to commend the response of our NYPD officer that was on post near the location who stopped the carnage moments after it began," he said.
He also praised the work of first responders, "including the Fire Department and the EMS personnel surely helped save additional lives."
New York Mayor Bill de Blasio, also thanked "everyone at the NYPD ... starting with the officer who stopped this tragedy from continuing."
Nash joined NYPD in 2012. He is now part of the investigation, which is being conducted jointly by the NYPD and the FBI.
Saipov was wounded and transported to a local hospital. He is now out of surgery, US media reported.
A note was found inside the crashed pickup truck referred to the Islamic State militant group, law enforcement sources were quoted as saying by US media.
Officials said it was a terror attack -- the deadliest in the city since the 9/11 attacks.
Terror in New York: 8 killed as man ploughs truck into crowds
#NYCStrong: Halloween parade marches on after attack
PHOTOS: Deadly terror attack in New York city
4 ways to tackle Islamic State's terror
The ISIS threat is real, and not far away