A train running from Perth to Dundee struck a tree that had fallen onto the line.
STV News understands there has been one injury but no passengers have been hurt.
A photo from a passenger shows the shattered glass of carriage windows.
The incident, shortly before 5pm, happened near Barnhill and stopped the 16.39pm service.
The train has been returned to Perth where travellers were able to continue their journeys on replacement bus services.
The line has since reopened and the train will be examined by Network Rail’s accident investigators.
A spokesperson for ScotRail said there will be delays and alterations to services and customers should check the app, website and social media channels for the latest information.
A Network Rail spokesperson said: “The railway between Perth and Dundee has reopened after the earlier incident in which a train was damaged by a tree which had blown onto the line.
“The damaged train has been taken back to Perth where it will be inspected by the Rail Accident Investigations Branch tomorrow.
“While trains are running again we’d still urge passengers to check National Rail Enquiries as services are still facing minor delays.”