There are 4 ways to get from Perth to Inverness by bus, train, 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.
Bus
best- Take the bus from Leonard Street to Union StreetE9
2h 13m£7–25Train
- Take the train from Perth to InvernessEdinburgh - Inverness / ...
2h 23m£13–80Drive 112.6 mi
- Drive from Perth to Inverness112.6 mi
2h 8m£29–41Bus via Pitlochry
- Take the bus from Kinnoull Street to Tulliemet Road End23A / ...
- Take the bus from Fishers Hotel to Bus Station Stance 3M90 / ...
3h 36m£11–30
Perth to Inverness by bus
Questions & Answers
The cheapest way to get from Perth to Inverness is to bus which costs £7 - £25 and takes 2h 13m.
The fastest way to get from Perth to Inverness is to drive which takes 2h 8m and costs £28 - £45.
Yes, there is a direct bus departing from Leonard Street and arriving at Union Street. Services depart every 30 minutes, and operate every day. The journey takes approximately 2h 13m.
Yes, there is a direct train departing from Perth and arriving at Inverness. Services depart hourly, and operate every day. The journey takes approximately 2h 23m.
The distance between Perth and Inverness is 113 miles. The road distance is 113.3 miles.
The best way to get from Perth to Inverness without a car is to bus which takes 2h 13m and costs £7 - £25.
The bus from Leonard Street to Union Street takes 2h 13m including transfers and departs every 30 minutes.
Perth to Inverness bus services, operated by Ember, depart from Leonard Street station.
Perth to Inverness train services, operated by ScotRail, depart from Perth station.
The best way to get from Perth to Inverness is to bus which takes 2h 13m and costs £7 - £25. Alternatively, you can train, which costs £13 - £80 and takes 2h 23m.
What companies run services between Perth, Scotland and Inverness, Scotland?
Ember operates a bus from Leonard Street to Union Street hourly, and the journey takes 2h 13m. Four other operators also service this route. Alternatively, ScotRail operates a train from Perth to Inverness every 2 hours. Tickets cost £16–40 and the journey takes 2h 23m. Two other operators also service this route.
Transport is disrupted due to the Russia-Ukraine war. Read more
- Phone
- +44 344 811 0141
- Website
- scotrail.co.uk
Train from Perth to Inverness
- Ave. Duration
- 2h 23m
- Frequency
- Every 2 hours
- Estimated price
- £16–40
- 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/
Rome2Rio's guide to FlixBus
Contact Details
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Leonard Street to Union Street
- Ave. Duration
- 2h 25m
- Frequency
- Every 30 minutes
- Estimated price
- £7–13
- Website
- https://www.flixbus.co.uk
Bus from Fishers Hotel to Bus Station Stance 3
- Ave. Duration
- 2h
- Frequency
- Every 30 minutes
- Estimated price
- £5–13
- Website
- https://www.flixbus.co.uk
- Phone
- 0141 352 4444
- info@citylink.co.uk
- Website
- citylink.co.uk
Bus from Leonard Street to Union Street
- Ave. Duration
- 2h 32m
- Frequency
- Every 2 hours
- Estimated price
- £17–25
- Website
- https://www.citylink.co.uk/
Bus from Fishers Hotel to Bus Station Stance 3
- Ave. Duration
- 1h 53m
- Frequency
- Every 30 minutes
- Estimated price
- £14–20
- Website
- https://www.citylink.co.uk/
- Phone
- 01698 653164
- enquiries@parksofhamilton.co.uk
- Website
- parksofhamilton.co.uk
Bus from Leonard Street to Union Street
- Ave. Duration
- 2h 52m
- Frequency
- Every 4 hours
- Website
- https://www.parksofhamilton.co.uk/
Bus from Fishers Hotel to Bus Station Stance 3
- Ave. Duration
- 1h 53m
- Frequency
- Every 4 hours
- Website
- https://www.parksofhamilton.co.uk/
- Phone
- 0141 352 4444
- enquiries@megabus.com
- Website
- uk.megabus.com
Bus from Leonard Street to Union Street
- Ave. Duration
- 2h 32m
- Frequency
- Twice daily
- Estimated price
- £12–17
- Website
- https://uk.megabus.com
- Phone
- 0345 241 8000
- customer.services@stagecoachbus.com
- Website
- stagecoachbus.com
Bus from Kinnoull Street to Tulliemet Road End
- Ave. Duration
- 1h 10m
- Frequency
- Hourly
- Estimated price
- £4–6
- 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 Inverness bus services, operated by Ember, arrive at Union Street station.
Perth to Inverness train services, operated by ScotRail, arrive at Inverness station.
Yes, the driving distance between Perth to Inverness is 113 miles. It takes approximately 2h 8m to drive from Perth to Inverness.
Book your Perth to Inverness train tickets online with Omio.
Book your Perth to Inverness bus tickets online with Omio, FlixBus and Distribusion.
There are 1202+ hotels available in Inverness.































