The average train between Barmouth and Milford Haven takes 12h 21m and the fastest train takes 7h 49m. The train service runs several times per day from Barmouth to Milford Haven. 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 3 times a day between Barmouth and Milford Haven. The earliest departure is at 8:50 AM in the morning, and the last departure from Barmouth is at 9:50 PM which arrives into Milford Haven at 1:37 PM. All services require a transfer at Machynlleth and take an average of 12h 21m. The schedules shown below are for the next available departures.
Arrives next day


16h 30m • 2 changes
Arrives next day


15h 47m • 2 changes


8h 35m • 2 changes
Arrives next day


16h 30m • 2 changes
Arrives next day


15h 47m • 2 changes


8h 35m • 2 changes
Arrives next day


9h 3m • 2 changes
Arrives next day


16h 46m • 2 changes
Arrives next day


15h 54m • 2 changes


8h 45m • 2 changes


7h 55m • 2 changes


7h 49m • 2 changes


8h 38m • 2 changes
Want to know about travelling from Barmouth to Milford Haven? 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 Barmouth to Milford Haven. However, there are services departing from Barmouth station and arriving at Milford Haven station via Machynlleth. The journey, including transfers, takes approximately 12h 21m.
Barmouth to Milford Haven train services, operated by Transport for Wales, depart from Barmouth station.
Barmouth to Milford Haven train services, operated by Transport for Wales, arrive at Milford Haven station.
Book your Barmouth to Milford Haven train tickets online with Transport for Wales.
The distance between Barmouth and Milford Haven is 130.4 km. The road distance is 495 km.
You can take a train from Barmouth to Milford Haven via Machynlleth and Shrewsbury in around 8h 59m.