The average train between Silkeborg and Viborg takes 2h 16m and the fastest train takes 1h 51m. There is a train service every few hours from Silkeborg to Viborg. 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 hourly between Silkeborg and Viborg. The earliest departure is at 5:32 AM in the morning, and the last departure from Silkeborg is at 11:50 PM which arrives into Viborg at 5:49 AM. All services require a transfer, and take on average 2h 16m. The schedules shown below are for the next available departures.

2h 17m • 1 change
Arrives next day

2h 43m • 1 change
Arrives next day

8h 12m • 1 change

2h 17m • 1 change

2h 17m • 1 change

2h 17m • 1 change

2h 17m • 1 change

1h 58m • 1 change

2h 10m • 1 change

2h 4m • 1 change

2h 7m • 1 change

1h 58m • 1 change

2h 10m • 1 change

2h 4m • 1 change

2h 7m • 1 change
Want to know about travelling from Silkeborg to Viborg? 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 Silkeborg to Viborg. However, there are services departing from Silkeborg station and arriving at Viborg station via Aarhus H. The journey, including transfers, takes approximately 2h 16m.
Silkeborg to Viborg train services, operated by Danish Railways (DSB), depart from Silkeborg St. station.
Silkeborg to Viborg train services, operated by Danish Railways (DSB), arrive at Viborg St. station.
Book your Silkeborg to Viborg train tickets online with Danish Railways (DSB).
The distance between Silkeborg and Viborg is 32.7 km. The road distance is 137 km.
You can take a train from Silkeborg St. to Viborg St. via Aarhus H in around 2h 18m.