There are 6 ways to get from Haapsalu to Viljandi 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 Veekeskus to Lihulabus L25 / ...
- Take the bus from Lihula to Vabaduse platsbus 149
4h 2m€6–10Bus, train via Tallinn
- Take the bus from Haapsalu bussijaam to Vana-Pääskülabus 204 / ...
- Take the train from Tallinn to Viljanditrain Re23 / ...
4h 54m€11–27Drive 178 km
- Drive from Haapsalu to Viljandicar 178 km
2h 39m€29–42Bus, train
- Take the bus from Haapsalu bussijaam to Tutimäebus 153
- Take the train from Rapla to Viljanditrain Re23 / ...
4h 8m€11–19Bus via Pärnu
- Take the bus from Niine to Pärnu bussijaambus 321
- Take the bus from Pärnu bussijaam to Vabaduse platsbus 146 / ...
4h 37m€9–19Bus via Pärnu #2
- Take the bus from Niine to Pärnu bussijaambus 321
- Take the bus from Pärnu bussijaam to Ugalabus 371
5h 25m
Haapsalu to Viljandi by bus
Questions & Answers
The cheapest way to get from Haapsalu to Viljandi is to bus which costs €6 - €10 and takes 4h 2m.
The fastest way to get from Haapsalu to Viljandi is to drive which takes 2h 39m and costs €28 - €45.
No, there is no direct bus from Haapsalu to Viljandi. However, there are services departing from Veekeskus and arriving at Vabaduse plats via Lihula. The journey, including transfers, takes approximately 4h 2m.
The distance between Haapsalu and Viljandi is 202 km. The road distance is 178 km.
The best way to get from Haapsalu to Viljandi without a car is to bus which takes 4h 2m and costs €6 - €10.
It takes approximately 4h 2m to get from Haapsalu to Viljandi, including transfers.
Haapsalu to Viljandi bus services, operated by Go Bus AS, depart from Veekeskus station.
Haapsalu to Viljandi bus services, operated by Go Bus AS, arrive at Lihula station.
Yes, the driving distance between Haapsalu to Viljandi is 178 km. It takes approximately 2h 39m to drive from Haapsalu to Viljandi.
Book your Haapsalu to Viljandi bus tickets online with Omio.
What companies run services between Haapsalu, Estonia and Viljandi, Estonia?
You can take a bus from Veekeskus to Vabaduse plats via Lihula in around 4h 2m.
- Phone
- +372 616 0245
- [email protected]
- Website
- Elron
Train from Tallinn to Viljandi
- Ave. Duration
- 2h 5m
- Frequency
- Every 4 hours
- Estimated price
- €7–14
- Website
- Elron
- Express Train Ticket
- €10–14
Train from Rapla to Viljandi
- Ave. Duration
- 1h 14m
- Frequency
- Every 4 hours
- Estimated price
- €5–10
- Website
- Elron
- Express Train Ticket
- €7–10
- Phone
- +372 640 4000
- [email protected]
- Website
- Go Bus
Bus from Veekeskus to Lihula
- Ave. Duration
- 44 min
- Frequency
- 5 times a day
- Estimated price
- €2–3
- Website
- Go Bus
Bus from Lihula to Vabaduse plats
- Ave. Duration
- 2h 18m
- Frequency
- Once daily
- Estimated price
- €4–7
- Website
- Go Bus
Bus from Haapsalu bussijaam to Vana-Pääsküla
- Ave. Duration
- 1h 21m
- Frequency
- Every 4 hours
- Estimated price
- €3–5
- Website
- Go Bus
Bus from Pärnu bussijaam to Vabaduse plats
- Ave. Duration
- 1h 20m
- Frequency
- Twice daily
- Estimated price
- €3–5
- Website
- Go Bus
Want to know more about travelling around the world?
Rome2Rio's Travel Guide series provide vital information for the global traveller. Read our range of informative guides on popular transport routes and companies - including Best ways to travel around Australia, Italian Lakes: Getting around by train, and Travelling Croatia’s Dalmatian Coast by boat, bus, car and train - to help you get the most out of your next trip.
More Questions & Answers
There are 138+ hotels available in Viljandi.











