The
Great North of Scotland Railway reached Keith in 1856, however Keith was to be the effective end of the GNSR's "mainline" since plans to construct the GNSR through to Inverness had to be abandonded due to lack of funds. The
Inverness and Aberdeen Junction Railway was financed by residents of Inverness to complete the route, and opened to Keith on 18 August 1858. For many years no through trains were provided, and travellers had to endure legthy waits at Keith to continue their journey.
In 1859 Keith became the junction for another railway, the
Keith & Dufftown Railway. This nominally-independant railway was in fact financed and worked by the GNSR, who used the
Strathspey Railway and the
Morayshire Railway to gain access to Elgin. This resulted in serious arguments with the Inverness & Aberdeen Junction Railway's successor, the
Highland Railway, who did not want to exchange traffic at Elgin and argued that Keith should be the point of exchange for all traffic. After many debates an agreement was made which meant both junctions should be exchange points, but the GNSR was denied access to Inverness. This agreement led to better cooperation between the two companies and some through trains were operated afterwards.
In the 1960s Keith had an engine shed (for trains working
via Craigellachie & Dufftown, as well as by the coast route), a large goods shed, two through platforms (one for Highland Railway trains and one for the Dufftown branch), and three bay platforms (two GNSR bays and one Highland Railway bay). Today only the two through platforms survive, although only the former Highland Railway through platform survives in use. The two ex-GNSR bays at the eastern end of the station are now the site of the local railway infrastructure company. The engine shed was converted for use by a local business although it may be out of use. The goods yard has been drastically reduced in size although some traffic is still handled here.
The original GNSR station building was demolished and replaced by a smaller modern building in the 1980s. Today trains from Aberdeen to Inverness use the former
Highland Railway route via
Mulben after passing Keith. The Keith & Dufftown Railway closed to passengers in the 1960s but remained for many years to handle goods traffic. It is now owned by the
Keith & Dufftown Railway Association who operate a preserved railway between Dufftown and nearby
Keith Town station. At present the branch has been separated from the railway system although the branch platform and track survive at Keith Junction and are occasionally used to store passing trains. The junction is likely to be reinstated shortly so that the local freight operator can run freight traffic to Dufftown once more.