The average train between Middlesbrough and Perth takes 4h 47m and the fastest train takes 3h 53m. There is a train service every few hours from Middlesbrough to Perth. The journey time may be longer on weekends and holidays; use the search form on this page to search for a specific travel date.
Trains run hourly between Middlesbrough and Perth. The earliest departure is at 6:36 AM in the morning, and the last departure from Middlesbrough is at 11:49 PM which arrives into Perth at 10:00 AM. All services require a transfer at Darlington and take an average of 4h 47m. The schedules shown below are for the next available departures.


4h 18m • 2 changes


3h 58m • 2 changes


4h 6m • 2 changes


4h 18m • 2 changes


4h 30m • 2 changes


3h 55m • 2 changes


4h 10m • 2 changes


4h 17m • 2 changes


4h 30m • 2 changes


3h 55m • 2 changes


4h 10m • 2 changes


4h 17m • 2 changes
Want to know about travelling from Middlesbrough to Perth? We have put together a list of the most frequently asked questions from our users such as: What is the cheapest mode of transport? What is the quickest option? How much do tickets usually cost? and many more.
No, there is no direct train from Middlesbrough to Perth. However, there are services departing from Middlesbrough station and arriving at Perth station via Edinburgh Waverley. The journey, including transfers, takes approximately 4h 47m.
Middlesbrough to Perth train services, operated by Northern Trains Limited, depart from Darlington station.
Middlesbrough to Perth train services, operated by Northern Trains Limited, arrive at Perth station.
Book your Middlesbrough to Perth train tickets online with Northern Trains Limited, London North Eastern Railway Limited (LNER) and 3 other operators.
The distance between Middlesbrough and Perth is 245 km. The road distance is 369 km.
You can take a train from Middlesbrough to Perth via Darlington and Edinburgh Waverley in around 4h 48m.