Travelling from Perth to Inverness by train
The fastest trains from Perth to Inverness take around 2 hours, covering a distance of approximately 130 kilometres. There are frequent services on the rail route between Perth and Inverness.
Direct trains run between Perth and Inverness.
We usually find around 16 direct trains on the route from Perth to Inverness every weekday.
Trains are typically more frequent on weekends, when we found around 18 departures. The duration is normally about 2 hours, whatever time you make the journey.
On weekdays the earliest direct train to Inverness is usually scheduled to depart Perth around 05:08 and the last train is around 21:01. This is the same at the weekend.
Route map is indicative only and may differ from the optimal route. Actual routes will be displayed when searching.
When to book Perth to Inverness train tickets?
The earlier you book the better, and the cheapest tickets we've found for trains from Perth to Inverness are £5.00.
Trains departing 30 days in advance will cost around £11, and when booking 7 days in advance the price is usually the same. Booking on the day of travel may be more expensive.
Trains for this journey usually open for booking around 3 months in advance. If booking is not yet open for your dates then you can set a booking alert to receive an email on the day that the cheapest tickets are released for your journey from Perth to Inverness by train.
Which trains operate between Perth and Inverness?
More than one type of train operates on the route from Perth to Inverness, so you’ll be travelling with one or more of the following rail operators:
- East Coast
You can check which train you’ll be travelling on by looking for the train name in search results.
Other journeys to Inverness View all journeys to Inverness
- From Glasgow from £5.00
- From Forres from £8.90
- From Dundee from £14.30
- From Exeter St David's from £127.60
- From Newark North Gate from £59.00
- From Chesterfield from £86.00
- From Birmingham from £22.00
- London to Brussels trains
- Reading to Bournemouth trains
- Paris to Milan trains
- Florence to Verona trains
- Glasgow to Coventry trains
- Brussels to Amsterdam trains
- Amsterdam to London trains
- Bordeaux to Marseille trains
- Milan to Florence trains
- Darlington to Birmingham trains
- Milan to Pisa trains
- London to Geneva trains
- London to Munich trains
- Barcelona to Bilbao-Abando trains
- London to Florence trains
- Lyon to Barcelona trains
- Leeds to Stevenage trains
- Milan to Trieste Centrale trains
- London to Bruges trains
- London to Nice trains
- Brussels to London trains
- Madrid to Barcelona trains
- Madrid to Seville trains
- Bilbao-Abando to Madrid trains
- Brussels to Cologne trains
- Zurich to Milan trains
- Madrid to Bilbao-Abando trains
- Munich to Venice trains
- Venice to Verona trains
- Riomaggiore to Rome trains
- London to Amsterdam trains
- Verona to Milan trains
- London to Stuttgart trains
- Paris to Prague trains
- Milan to Bergamo trains
- Milan to Rome trains
- London to Antwerpen trains
- Reading to Bath Spa trains
- Paris to Toulouse trains
- London to Salzburg trains
- Middlesbrough to Edinburgh (Waverley, city centre) trains
- Plymouth to Birmingham trains
- Naples to Palermo Centrale trains
- Paris to Zurich trains
- London to Rotterdam trains
- Brussels to Rotterdam trains
- Geneva to Milan trains
- Ipswich to Norwich trains
- Munich to Salzburg trains
- Pisa to Bologna trains
- Grantham to York trains
- Brussels to Vienna trains
- London to Copenhagen trains
- London to Bordeaux trains
- Berlin to Warsaw trains
- Birmingham to High Wycombe trains
- Brussels to Berlin trains
- Paris to Amsterdam trains
- Milan to Bari S. Spirito trains
- London to Verona trains