The average train between Swansea and Perth takes 10h 25m and the fastest train takes 8h 56m. The train service runs several times per day from Swansea 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 every 4 hours between Swansea and Perth. The earliest departure is at 3:46 AM at night, and the last departure from Swansea is at 9:23 PM which arrives into Perth at 11:48 AM. All services require a transfer at Cardiff Central and take an average of 10h 25m. The schedules shown below are for the next available departures.



10h 24m • 3 changes



9h 19m • 3 changes



8h 56m • 3 changes



9h 17m • 3 changes



10h 24m • 3 changes



9h 19m • 3 changes



8h 56m • 3 changes



9h 17m • 3 changes



10h 14m • 3 changes



9h 19m • 3 changes



8h 58m • 3 changes



9h 16m • 3 changes



9h 14m • 3 changes



10h 2m • 3 changes
Arrives next day



9h 49m • 3 changes
Arrives next day



16h 24m • 3 changes



10h 24m • 3 changes



9h 19m • 3 changes



8h 56m • 3 changes



9h 17m • 3 changes



10h 24m • 3 changes



9h 19m • 3 changes



8h 56m • 3 changes



9h 17m • 3 changes



10h 24m • 3 changes



9h 19m • 3 changes



8h 56m • 3 changes



9h 17m • 3 changes
Want to know about travelling from Swansea 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 Swansea to Perth. However, there are services departing from Swansea station and arriving at Perth station via Cardiff Central. The journey, including transfers, takes approximately 10h 25m.
Swansea to Perth train services, operated by Great Western Railway (GWR), depart from Swansea station.
Swansea to Perth train services, operated by Great Western Railway (GWR), arrive at Perth station.
Book your Swansea to Perth train tickets online with Great Western Railway (GWR), Transport for Wales and 3 other operators.
The distance between Swansea and Perth is 531.9 km. The road distance is 769 km.
You can take a train from Swansea to Perth via Cardiff Central, Crewe, and Haymarket in around 10h 27m.