BALLWIN • A Ballwin police officer was in critical condition after he was shot in the neck during a traffic stop late Friday morning, police said.

The officer had stopped the car for speeding on northbound New Ballwin Road about 11 a.m., police said. As the officer went back to his car, the driver got out, “advanced quickly” and fired three shots at the officer, police said.

Said St. Louis County Police Chief Jon Belmar: “Make no mistake, we believe that Ballwin officer was ambushed.”

St. Louis County Prosecuting Attorney Robert McCulloch agreed.

“It was clearly an ambush, an attack,” he said. “There was no confrontation, no argument, no nothing.”

He also said it appeared that one of the shots might have been fired after the officer fell.

The gunman fled north on New Ballwin Road and was captured in Manchester several miles northeast of the shooting scene, after jumping out of the car and running, police said.

A semi-automatic handgun was recovered, according to St. Louis County Police, who are handling the investigation.

Police did not identify the officer.

The suspect, identified as Antonio Taylor, 31, of the 1200 block of Tower Grove Avenue in St. Louis, was charged with first-degree assault of a law enforcement officer, armed criminal action and unlawful possession of a weapon. Bail was set at $500,000.

Court documents said Taylor used a .22-caliber gun to shoot the officer. Authorities say he has a lengthy criminal history.