The crane toppled during track work near the Zurich Oerlikon station just before and its arm slammed into a long-distance train arriving from Zurich airport, police said in a statement.
It was not known what caused the accident and the Zurich police said they had launched an investigation.
None of the some 250 passengers onboard were hurt, but a worker suffered a hand injury and was taken to hospital.
The passengers were evacuated and walked the short distance to the station, police said.
One train wagon was smashed and police estimated that the incident caused hundreds of thousands of francs worth of damage.