The average train between Edinburgh and Swansea takes 7h 22m and the fastest train takes 6h 45m. The train service runs several times per day from Edinburgh to Swansea. 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 Edinburgh and Swansea. The earliest departure is at 1:01 AM at night, and the last departure from Edinburgh is at 6:52 PM which arrives into Swansea at 2:18 PM. All services require a transfer, and take on average 7h 22m. The schedules shown below are for the next available departures.

8h 16m • 1 change

6h 47m • 1 change

6h 45m • 1 change

6h 48m • 1 change

8h 16m • 1 change

6h 47m • 1 change

6h 45m • 1 change

6h 48m • 1 change

8h 16m • 1 change

6h 47m • 1 change

6h 45m • 1 change

6h 48m • 1 change

8h 14m • 1 change

6h 47m • 1 change

6h 47m • 1 change

6h 45m • 1 change

7h 11m • 1 change

7h 2m • 1 change

6h 55m • 1 change

7h 7m • 1 change

8h 39m • 1 change

6h 47m • 1 change

6h 45m • 1 change

6h 48m • 1 change

8h 16m • 1 change

6h 47m • 1 change

6h 45m • 1 change

6h 48m • 1 change
Want to know about travelling from Edinburgh to Swansea? 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 Edinburgh to Swansea. However, there are services departing from Edinburgh station and arriving at Swansea station via Crewe. The journey, including transfers, takes approximately 7h 22m.
Edinburgh to Swansea train services, operated by Caledonian Sleeper, depart from Edinburgh Waverley station.
Edinburgh to Swansea train services, operated by Caledonian Sleeper, arrive at Swansea station.
Book your Edinburgh to Swansea train tickets online with Caledonian Sleeper, Transport for Wales and Avanti West Coast.
The distance between Edinburgh and Swansea is 484.1 km. The road distance is 683 km.
You can take a train from Edinburgh Waverley to Swansea via Crewe in around 7h 39m.