34-year-old Alberto Pena of the Bronx is charged with attempted murder and three counts of assault.
The victim, 43-year-old Luis Henriquez, had to have part of his leg amputated after it was run over by the train.
The NYPD released video it said showed the suspect walking after Wednesday morning's attack.
Police say he shoved Henriquez into the path of an oncoming train at the 170th Street station.
Fire officials say the victim was forced to dodge the oncoming train, but one of his legs was run over, leaving him bleeding profusely just inches from the electrified third rail.
Paramedics rushed to the scene and found the man in and out of consciousness while at serious risk of bleeding to death. He was rushed to Lincoln Hospital.
Police say the victim and his assailant fought on the platform before he was shoved onto the tracks.
(The Associated Press contributed to this report.)