There are 5 ways to get from Perth to Elgin by train, bus, or car
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train
best- Take the train from Perth to ElginGlasgow Queen Street - Inverness / ...
3h 9m£40–90Bus via Inverness
cheapest- Take the bus from Bus Station to Bus Station Stance 3Uk093 / ...
- Take the bus from Bus Station Stance 4 to Braelossie PlaceM96
4h 8m£16–37Bus
- Take the bus from Leonard Street to Union StreetE9
- Take the bus from Union Street to Braelossie PlaceE7
3h 32mDrive 116.9 mi
- Drive from Perth to Elgin116.9 mi
2h 27m£30–43Train via Inverness
- Take the train from Perth to InvernessEdinburgh - Inverness / ...
- Take the train from Inverness to ElginInverness - Aberdeen / ...
3h 48m£30–95
Perth to Elgin by train
Questions & Answers
The cheapest way to get from Perth to Elgin is to bus via Inverness which costs £16 - £40 and takes 4h 8m.
The fastest way to get from Perth to Elgin is to drive which takes 2h 27m and costs £29 - £45.
No, there is no direct bus from Perth to Elgin. However, there are services departing from Leonard Street and arriving at Braelossie Place via Union Street. The journey, including transfers, takes approximately 3h 32m.
Yes, there is a direct train departing from Perth and arriving at Elgin. Services depart once daily, and operate every day. The journey takes approximately 3h 9m.
The distance between Perth and Elgin is 161 miles. The road distance is 117.6 miles.
The best way to get from Perth to Elgin without a car is to train which takes 3h 9m and costs £40 - £90.
The train from Perth to Elgin takes 3h 9m including transfers and departs once daily.
Perth to Elgin bus services, operated by Ember, depart from Leonard Street station.
Perth to Elgin train services, operated by ScotRail, depart from Perth station.
The best way to get from Perth to Elgin is to train which takes 3h 9m and costs £40 - £90. Alternatively, you can bus, which costs and takes 3h 32m.
What companies run services between Perth, Scotland and Elgin, Scotland?
ScotRail operates a train from Perth to Elgin once daily. Tickets cost £40–90 and the journey takes 3h 9m. Alternatively, you can take a bus from Leonard Street to Braelossie Place via Union Street in around 3h 32m.
Transport is disrupted due to the Russia-Ukraine war. Read more
- Phone
- +44 344 811 0141
- Website
- scotrail.co.uk
Train from Perth to Elgin
- Ave. Duration
- 3h 9m
- Frequency
- Once daily
- Estimated price
- £40–90
- Website
- https://www.scotrail.co.uk/
- Standard
- £40–55
- 1st Class
- £60–90
Train from Perth to Inverness
- Ave. Duration
- 2h 23m
- Frequency
- Every 2 hours
- Estimated price
- £16–40
- Website
- https://www.scotrail.co.uk/
Train from Inverness to Elgin
- Ave. Duration
- 42 min
- Frequency
- Hourly
- Estimated price
- £17–18
- Website
- https://www.scotrail.co.uk/
- Phone
- +44 345 722 5333
- customers@lner.co.uk
- Website
- lner.co.uk
Train from Perth to Inverness
- Ave. Duration
- 2h 8m
- Frequency
- Twice daily
- Estimated price
- £13–17
- Website
- https://www.lner.co.uk/
- Phone
- +44 330 060 0500
- enquiry@sleeper.scot
- Website
- sleeper.scot
Train from Perth to Inverness
- Ave. Duration
- 2h 52m
- Frequency
- Twice daily
- Estimated price
- £60–80
- Website
- https://www.sleeper.scot/
- Sleeper Berth Classic
- £210–230
- Sleeper Seat
- £60–80
- Sleeper Berth Club Solo
- £240–280
- Phone
- +44 (0)131 510 4007
- ride@ember.to
- Website
- ember.to
Bus from Leonard Street to Union Street
- Ave. Duration
- 2h 13m
- Frequency
- Hourly
- Website
- https://www.ember.to/
Bus from Union Street to Braelossie Place
- Ave. Duration
- 57 min
- Frequency
- Hourly
- Website
- https://www.ember.to/
Rome2Rio's guide to FlixBus
Contact Details
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Bus Station to Bus Station Stance 3
- Ave. Duration
- 2h 25m
- Frequency
- Every 30 minutes
- Estimated price
- £7–13
- Website
- https://www.flixbus.co.uk
- Phone
- 0141 352 4444
- info@citylink.co.uk
- Website
- citylink.co.uk
Bus from Bus Station to Bus Station Stance 3
- Ave. Duration
- 2h 32m
- Frequency
- Every 2 hours
- Estimated price
- £17–25
- Website
- https://www.citylink.co.uk/
- Phone
- 01698 653164
- enquiries@parksofhamilton.co.uk
- Website
- parksofhamilton.co.uk
Bus from Bus Station to Bus Station Stance 3
- Ave. Duration
- 2h 52m
- Frequency
- Every 4 hours
- Website
- https://www.parksofhamilton.co.uk/
- Phone
- 0141 352 4444
- enquiries@megabus.com
- Website
- uk.megabus.com
Bus from Bus Station to Bus Station Stance 3
- Ave. Duration
- 2h 32m
- Frequency
- Twice daily
- Estimated price
- £12–17
- Website
- https://uk.megabus.com
- Phone
- 01224591381
- bluebird.enquiries@stagecoachbus.com
- Website
- stagecoachbus.com
Bus from Bus Station Stance 4 to Braelossie Place
- Ave. Duration
- 1h 18m
- Frequency
- Hourly
- Estimated price
- £9–13
- Website
- https://www.stagecoachbus.com/
Want to know more about travelling around United Kingdom
Rome2Rio's Travel Guide series provide vital information for the global traveller. Filled with useful and timely travel information, the guides answer all the hard questions - such as 'How do I buy a ticket?', 'Should I book online before I travel? ', 'How much should I expect to pay?', 'Do the trains and buses have Wifi?' - to help you get the most out of your next trip.
Related travel guides
Travelling to the UK: What do I need to know?
Read the travel guide
Want to know more about Flixbus?
Read the travel guide
More Questions & Answers
Perth to Elgin bus services, operated by Ember, arrive at Union Street station.
Perth to Elgin train services, operated by ScotRail, arrive at Elgin station.
Yes, the driving distance between Perth to Elgin is 118 miles. It takes approximately 2h 27m to drive from Perth to Elgin.
Book your Perth to Elgin train tickets online with Omio.
There are 394+ hotels available in Elgin.





























