"The train was full and the impact was tremendous," a passenger identified only as Ezequiel told local television, adding that medics at the scene appeared overwhelmed by the scale of the disaster.
Witnesses said the train's brakes failed as it was arriving at the Once station on the western outskirts of Argentina's capital yesterday.
Passengers were hurled on top of each other and knocked to the floor of the train, some losing consciousness and others seriously injured, they said.
"Unfortunately, we must report that there are 49 dead in the accident," including a child, police spokesman Nestor Rodriguez told a news conference.
Civil defense officials said that at least 675 people were hurt in the crash, 200 of them seriously.
Medevac helicopters landed in the street outside the station to ferry the most seriously wounded to hospitals, as ambulances raced in and out of the area.
"There were people who were crushed and shouting desperately. I saw bodies and blood all over the place," said passenger Alejandro Velazquez.
The government called for two days of mourning and suspended Carnival celebrations, including a massive parade planned in Buenos Aires tomorrow.
Argentine President Cristina Kirchner suspended a news conference on the dispute with Britain over the Falkland Islands following news of the crash.