Witnesses said a locomotive derailed and struck an oncoming train, World Radio Switzerland reported.
Police spokeswoman Anja Schudel said nine people were taken to a local hospital, CNN said. No one was reported seriously injured.
Passengers said they were thrown from their seats, hitting the sides of the train.
The broadcaster said some passengers in the first few cars of both trains were trapped for an hour before rescuers could reach them.
The commuter trains ran into each other near the train station in Neuhausen am Rheinfall, about 20 miles from Zurich, CNN said. The town is known for a large waterfall on the Rhine River, a major tourist attraction.