There are 9 ways to get from Oslo to Viljandi by train, plane, car, car ferry, bus, or ferry
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train, fly to Lennart Meri International Airport
best- Take the train from Oslo S to Oslo lufthavn stasjon
- Fly from Oslo Airport, Gardermoen (OSL) to Lennart Meri International Airport (TLL)OSL - TLL
- Take the train from Tallinn to Viljandi
7h 16m€70–176Drive, car ferry
- Drive from Oslo to Kapellskär
- Take the car ferry from Kapellskär to Paldiski
- Drive from Paldiski to Viljandi
18h 39mBus
- Take the bus from Oslo bussterminal to Berlin, Zentralen Omnibusbahnhof
- Take the bus from Berlin, Zentralen Omnibusbahnhof to Parnu, Bus Station
- Take the bus from Pärnu bussijaam to Vabaduse plats145
41h 59m€159–281Train, fly to Tartu Ülenurme Airport, bus
- Take the train from Oslo S to Oslo lufthavn stasjon
- Fly from Oslo Airport, Gardermoen (OSL) to Tartu Ülenurme Airport (TAY)OSL - TAY
- Take the bus from Tartu bussijaam to Viljandi bussijaam
9h 40m€89–304Train, fly to Helsinki Airport, ferry
- Take the train from Oslo S to Oslo lufthavn stasjon
- Fly from Oslo Airport, Gardermoen (OSL) to Helsinki Airport (HEL)OSL - HEL
- Take the ferry from Helsinki to Tallinn
- Take the train from Tallinn to Viljandi
11h 3m€92–297Train, fly to Riga International Airport, bus
- Take the train from Oslo S to Oslo lufthavn stasjon
- Fly from Oslo Airport, Gardermoen (OSL) to Riga International Airport (RIX)OSL - RIX
- Take the train from Riga-Pasazieru to Valga
- Take the bus from Valga bussijaam to Vabaduse plats
11h 2mTrain, car ferry via Stockholm
- Take the train from Oslo S to Stockholm Centralstation70
- Take the car ferry from Stockholm to Tallinn
- Take the train from Tallinn to ViljandiE23 / ...
26h 9m€153–435Train, car ferry
- Take the train from Oslo S to Stockholm Centralstation
- Take the car ferry from Stockholm to Tallinn
- Take the train from Tallinn to ViljandiE23 / ...
26h 27m€148–430Bus, ferry, train
- Take the bus from Oslo Bussterminal to Stockholm, Cityterminalen877 / ...
- Take the ferry from Stockholm to Tallinn
- Take the train from Tallinn to ViljandiE23 / ...
29h 8m€97–139
Oslo to Viljandi by bus
Questions & Answers
The cheapest way to get from Oslo to Viljandi is to bus and ferry and train which costs €95 - €140 and takes 29h 8m.
The fastest way to get from Oslo to Viljandi is to train and fly which takes 7h 16m and costs €70 - €180.
No, there is no direct bus from Oslo to Viljandi. However, there are services departing from Oslo bussterminal and arriving at Vabaduse plats via Berlin, Zentralen Omnibusbahnhof and Pärnu bussijaam. The journey, including transfers, takes approximately 41h 59m.
The distance between Oslo and Viljandi is 971 km.
The best way to get from Oslo to Viljandi without a car is to bus which takes 41h 59m and costs €150 - €290.
It takes approximately 7h 16m to get from Oslo to Viljandi, including transfers.
Oslo to Viljandi bus services, operated by FlixBus, depart from Oslo bussterminal station.
Oslo to Viljandi bus services, operated by FlixBus, arrive at Berlin, Zentralen Omnibusbahnhof station.
Viljandi is 1h ahead of Oslo. It is currently 6:21 PM in Oslo and 7:21 PM in Viljandi.
Book your Oslo to Viljandi bus tickets online with Omio.
What companies run services between Oslo, Norway and Viljandi, Estonia?
You can take a bus from Oslo bussterminal to Vabaduse plats via Berlin, Zentralen Omnibusbahnhof and Pärnu bussijaam in around 41h 59m.
- Website
- finnair.com
Flights from Oslo Airport, Gardermoen to Lennart Meri International Airport via Helsinki Airport
- Ave. Duration
- 2h 55m
- When
- Monday, Tuesday, and Sunday
- Estimated price
- €80–170
Flights from Oslo Airport, Gardermoen to Tartu Ülenurme Airport via Helsinki Airport
- Ave. Duration
- 4h 58m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €75–320
Flights from Oslo Airport, Gardermoen to Helsinki Airport
- Ave. Duration
- 1h 26m
- When
- Every day
- Estimated price
- €100–350
- Website
- flysas.com
Flights from Oslo Airport, Gardermoen to Lennart Meri International Airport via Stockholm
- Ave. Duration
- 3h 40m
- When
- Saturday
- Estimated price
- €80–140
Flights from Oslo Airport, Gardermoen to Lennart Meri International Airport via Copenhagen
- Ave. Duration
- 3h 45m
- When
- Tuesday
- Estimated price
- €80–140
Flights from Oslo Airport, Gardermoen to Helsinki Airport via Stockholm
- Ave. Duration
- 3h 10m
- When
- Saturday and Sunday
- Estimated price
- €65–210
Flights from Oslo Airport, Gardermoen to Riga International Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- €45–160
Flights from Oslo Airport, Gardermoen to Riga International Airport via Copenhagen
- Ave. Duration
- 3h 37m
- When
- Every day
- Estimated price
- €45–250
Flights from Oslo Airport, Gardermoen to Riga International Airport via Stockholm
- Ave. Duration
- 3h 25m
- When
- Monday, Tuesday, Thursday, and Friday
- Estimated price
- €45–160
- Website
- airbaltic.com
Flights from Oslo Airport, Gardermoen to Lennart Meri International Airport via Riga International Airport
- Ave. Duration
- 3h 25m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €50–110
Flights from Oslo Airport, Gardermoen to Helsinki Airport via Riga International Airport
- Ave. Duration
- 3h 35m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €50–150
Flights from Oslo Airport, Gardermoen to Riga International Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- €45–160
- Website
- norwegian.com
Flights from Oslo Airport, Gardermoen to Lennart Meri International Airport
- Ave. Duration
- 1h 30m
- When
- Monday, Wednesday, Friday, and Sunday
- Estimated price
- €40–120
Flights from Oslo Airport, Gardermoen to Riga International Airport
- Ave. Duration
- 1h 30m
- When
- Monday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €35–100
Flights from Oslo Airport, Gardermoen to Riga International Airport via Copenhagen
- Ave. Duration
- 4h
- When
- Monday, Thursday, and Friday
- Estimated price
- €35–100
- Website
- norwegian.com
Flights from Oslo Airport, Gardermoen to Helsinki Airport
- Ave. Duration
- 1h 30m
- When
- Monday, Friday, and Sunday
- Estimated price
- €45–150
Flights from Oslo Airport, Gardermoen to Riga International Airport via Trondheim
- Ave. Duration
- 3h 30m
- When
- Monday and Friday
- Estimated price
- €60–220
- Phone
- 23 15 90 00
- flytoget@flytoget.no
- Website
- flytoget.no
Train from Oslo S to Oslo lufthavn stasjon
- Ave. Duration
- 22 min
- Frequency
- Every 15 minutes
- Estimated price
- €18–20
- Website
- https://flytoget.no/en/
- Phone
- +47 61 05 19 10
- tog@vy.no
- Website
- vy.no
Train from Oslo S to Oslo lufthavn stasjon
- Ave. Duration
- 30 min
- Frequency
- Every 20 minutes
- Estimated price
- €10–16
- Website
- https://www.vy.no/en
- Phone
- +372 616 0245
- klienditugi@elron.ee
- Website
- elron.ee
Train from Tallinn to Viljandi
- Ave. Duration
- 2h 5m
- Frequency
- Every 3 hours
- Estimated price
- €8–14
- Website
- https://elron.ee/en
- Express Train Ticket
- €9–14
- Phone
- +370 700 55 111
- informacija@ltglink.lt
- Website
- ltglink.lt
Train from Riga-Pasazieru to Valga
- Ave. Duration
- 2h 31m
- Frequency
- Once daily
- Website
- https://ltglink.lt/en
- Phone
- +46 77 175 75 75
- Website
- sj.se
Train from Oslo S to Stockholm Centralstation
- Ave. Duration
- 5h 29m
- Frequency
- 4 times a day
- Estimated price
- €30–90
- Website
- https://www.sj.se/en
- Phone
- +46 771 15 15 15
- info@tagkompaniet.se
- Website
- vy.se
Train from Oslo S to Stockholm Centralstation
- Ave. Duration
- 6h 22m
- Frequency
- 3 times a week
- Schedules at
- vy.se
- Phone
- +46 77 175 75 75
- kundservice@sj.se
- Website
- sj.se
Train from Oslo S to Stockholm Centralstation
- Ave. Duration
- 5h 30m
- Frequency
- 5 times a day
- Estimated price
- €30–90
- Website
- https://www.sj.se/en/
- Phone
- +46 77 144 41 11
- Website
- vy.se
Train from Oslo S to Stockholm Centralstation
- Ave. Duration
- 6h 20m
- Frequency
- 3 times a week
- Estimated price
- €40–60
- Schedules at
- vy.se
Rome2Rio's guide to FlixBus
Contact Details
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Oslo bussterminal to Berlin, Zentralen Omnibusbahnhof
- Ave. Duration
- 17h 50m
- Frequency
- 5 times a week
- Estimated price
- €55–130
- Website
- https://www.flixbus.co.uk
Bus from Berlin, Zentralen Omnibusbahnhof to Parnu, Bus Station
- Ave. Duration
- 20h 45m
- Frequency
- Twice daily
- Estimated price
- €100–150
- Website
- https://www.flixbus.co.uk
- Phone
- +372 680 0909
- info@luxexpress.eu
- Website
- luxexpress.eu
Bus from Pärnu bussijaam to Vabaduse plats
- Ave. Duration
- 1h 24m
- Frequency
- 3 times a day
- Estimated price
- €7–9
- Website
- https://luxexpress.eu/en/
Bus from Tartu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 15m
- Frequency
- 3 times a day
- Estimated price
- €7–9
- Website
- https://luxexpress.eu/en/
- Phone
- +372 640 4000
- klienditugi@gobus.ee
- Website
- gobus.ee
Bus from Pärnu bussijaam to Vabaduse plats
- Ave. Duration
- 1h 20m
- Frequency
- Twice daily
- Estimated price
- €3–5
- Website
- https://gobus.ee/en/
Bus from Tartu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 10m
- Frequency
- Twice daily
- Estimated price
- €2–4
- Website
- https://gobus.ee/en/
Bus from Valga bussijaam to Vabaduse plats
- Ave. Duration
- 1h 37m
- Frequency
- Twice daily
- Estimated price
- €3–5
- Website
- https://gobus.ee/en/
- Phone
- +372 641 8218
- grupp@atko.ee
- Website
- atko.ee
Bus from Pärnu bussijaam to Vabaduse plats
- Ave. Duration
- 2h 13m
- Frequency
- 6 times a week
- Website
- Atko Bussiliinid AS
- Phone
- +372 627 9080
- info@hansabuss.ee
- Website
- hansabuss.ee
Bus from Tartu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 15m
- Frequency
- 5 times a day
- Estimated price
- €6–8
- Website
- https://hansabuss.ee/en/
- Schedules at
- https://hansabuss.ee/en/liinireisid/commercial-lines/
- Phone
- +372 606 4969
- info@sebe.ee
- Website
- sebe.ee
Bus from Tartu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 15m
- Frequency
- Once daily
- Estimated price
- €5–8
- Schedules at
- sebe.ee
- peatus@agri.ee
- Website
- web.peatus.ee
Bus from Tartu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 10m
- Frequency
- 4 times a week
- Estimated price
- €3–5
- Website
- https://web.peatus.ee/?locale=en
- Phone
- +372 5886 0000
- info@bussikeskus.ee
- Website
- bussikeskus.ee
Bus from Tartu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 15m
- Frequency
- Twice a week
- Estimated price
- €6–8
- Website
- http://www.bussikeskus.ee/
- Schedules at
- https://www.bussikeskus.ee/et/regular-services
- Phone
- +47 407 05070
- buss@vy.no
- Website
- vybuss.no
Bus from Oslo Bussterminal to Stockholm, Cityterminalen
- Ave. Duration
- 7h 30m
- Frequency
- Twice daily
- Estimated price
- €70–110
- Website
- https://www.vybuss.com/
Ferry from Helsinki to Tallinn
- Ave. Duration
- 2h
- Frequency
- Every 4 hours
- Estimated price
- €11–75
- Website
- https://www.tallink.com/en
Car ferry from Stockholm to Tallinn
- Ave. Duration
- 16h
- Frequency
- 3 times a week
- Estimated price
- €100–320
- Website
- https://www.tallink.com/en
- Adult
- €100–170
- Vehicle
- €230–320
Ferry from Stockholm to Tallinn
- Ave. Duration
- 16h 15m
- Frequency
- 4 times a week
- Estimated price
- €13–16
- Website
- https://www.tallink.com/en
Want to know more about travelling around Estonia
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
How to plan an amazing trip around Scandinavia
Read the travel guide
Want to know more about Flixbus?
Read the travel guide
More Questions & Answers
There are 119+ hotels available in Viljandi.


























































