A taxi driver was in stable condition last night at Thomas Jefferson University Hospital after being shot in the shoulder by one of two gunmen in Center City on Christmas Eve, police said.

A police officer was on patrol when a passer-by flagged him down, screaming that a cab driver had been shot at 11th and Market streets and that the gunmen had fled south on 12th, police said.

When the officer arrived, he saw two men, dressed in black with guns tucked in their waistbands, picking up toys on the ground, said police spokesman Lt. Frank Vanore.

The officer ordered them to stop, but they started to walk toward him and a struggle ensued. Eventually, the cop managed to disarm and arrest both of them, Vanore said.

The cab driver later identified James Allen, 44, of Wynnefield, as his shooter. Details of the shooting were sketchy, but about 9 p.m. Thursday, Allen and his alleged partner in crime, Jermaine Aikens, 31, of North Philly, approached the driver, police said.

Aikens pointed a gun at him and the cabbie ducked behind a car, Vanore said, adding that Allen then fired, striking the driver in the left shoulder. The driver was taken to Jefferson, where he was listed in stable condition.

Police confiscated a 9mm semiautomatic handgun and a .45-caliber Glock 30. Both men were charged with weapons offenses and related charges, Vanore said.