A subway rider was stabbed in the stomach by a fellow passenger on the northbound Broad Street line late Tuesday morning, police said.

While the train was in motion, passengers notified the operator that a fight had broken out between two men, according to a SEPTA spokeswoman.

The operator called the fight in, but by the time the train pulled into the Ellsworth-Federal station about 10:52 a.m., the assailant had already stabbed the 21-year-old victim once in the stomach with an unknown weapon, police said.

A fare collector who was working when the train pulled in, but declined to give his name, said he "heard a lot of hollering and cursing" from passengers when the train doors opened.

He said the first city police officer on scene was able to apprehend the suspect, identified by police Tuesday night as James Hayes, 20, as he ran up the stairs from the subway platform.

"The guy wasn't fighting him at all," he said of the suspect's demeanor when he was caught.

Shortly after, the fare collector said, he saw someone help the victim up the stairs. The victim, who was bleeding from his stomach, sat at the top of the steps until medical assistance arrived, he said.

The victim, who wasn't identified, was taken to Thomas Jefferson University Hospital, where he was listed Tuesday in critical but stable condition, the SEPTA spokeswoman said.

Hayes, of Andrews Avenue near Ogontz, was charged with aggravated assault, simple assault and related offenses.