There are 5 ways to get from Viljandi to Haapsalu 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 Viljandi bussijaam to Lihulabus 149
- Take the bus from Lihula to Veekeskusbus L25 / ...
3h 53m€7–9Train, bus
- Take the train from Viljandi to Tallinntrain Re23 / ...
- Take the bus from Vana-Pääsküla to Niinebus 717 / ...
4h 10m€13–28Drive 177.8 km
- Drive from Viljandi to Haapsalucar 177.8 km
2h 39m€29–41Bus via Tallinn
- Take the bus from Viljandi bussijaam to Tallinna bussijaambus 375 / ...
- Take the bus from Tallinna bussijaam to Niinebus 717 / ...
4h 10m€8–27Bus via Pärnu
- Take the bus from Ugala to Pärnu bussijaambus 371
- Take the bus from Pärnu bussijaam to Niinebus 321
5h 19m
Viljandi to Haapsalu by bus
Questions & Answers
The cheapest way to get from Viljandi to Haapsalu is to bus which costs €6 - €10 and takes 3h 53m.
The fastest way to get from Viljandi to Haapsalu is to drive which takes 2h 39m and costs €28 - €45.
No, there is no direct bus from Viljandi to Haapsalu. However, there are services departing from Viljandi bussijaam and arriving at Veekeskus via Lihula. The journey, including transfers, takes approximately 3h 53m.
The distance between Viljandi and Haapsalu is 203 km. The road distance is 177.8 km.
The best way to get from Viljandi to Haapsalu without a car is to bus which takes 3h 53m and costs €6 - €10.
It takes approximately 3h 53m to get from Viljandi to Haapsalu, including transfers.
Viljandi to Haapsalu bus services, operated by Hansabuss AS, depart from Viljandi bussijaam station.
Viljandi to Haapsalu bus services, operated by Hansabuss AS, arrive at Tallinna bussijaam station.
Yes, the driving distance between Viljandi to Haapsalu is 178 km. It takes approximately 2h 39m to drive from Viljandi to Haapsalu.
Book your Viljandi to Haapsalu bus tickets online with Omio.
What companies run services between Viljandi, Estonia and Haapsalu, Estonia?
You can take a bus from Viljandi bussijaam to Veekeskus via Lihula in around 3h 53m.
- Phone
- +372 616 0245
- klienditugi@elron.ee
- Website
- elron.ee
Train from Viljandi to Tallinn
- Ave. Duration
- 2h 6m
- Frequency
- Every 2 hours
- Estimated price
- €8–14
- Website
- https://elron.ee/en
- Express Train Ticket
- €9–14
- Phone
- +372 640 4000
- klienditugi@gobus.ee
- Website
- gobus.ee
Bus from Viljandi bussijaam to Lihula
- Ave. Duration
- 2h 10m
- Frequency
- Twice daily
- Estimated price
- €4–7
- Website
- https://gobus.ee/en/
Bus from Lihula to Veekeskus
- Ave. Duration
- 43 min
- Frequency
- Every 2 hours
- Estimated price
- €1–3
- Website
- https://gobus.ee/en/
Bus from Vana-Pääsküla to Niine
- Ave. Duration
- 1h 6m
- Frequency
- Hourly
- Estimated price
- €3–4
- Website
- https://gobus.ee/en/
Bus from Viljandi bussijaam to Tallinna bussijaam
- Ave. Duration
- 2h 15m
- Frequency
- Twice daily
- Estimated price
- €4–7
- Website
- https://gobus.ee/en/
Bus from Tallinna bussijaam to Niine
- Ave. Duration
- 1h 26m
- Frequency
- Hourly
- Estimated price
- €3–5
- Website
- https://gobus.ee/en/
- Phone
- +372 680 0909
- info@luxexpress.eu
- Website
- luxexpress.eu
Bus from Vana-Pääsküla to Niine
- Ave. Duration
- 1h 13m
- Frequency
- Every 4 hours
- Estimated price
- €8–12
- Website
- https://luxexpress.eu/en/
Bus from Tallinna bussijaam to Niine
- Ave. Duration
- 1h 33m
- Frequency
- Every 4 hours
- Estimated price
- €9–13
- Website
- https://luxexpress.eu/en/
- Phone
- +372 502 5996
- info@reis.ee
- Website
- reis.ee
Bus from Vana-Pääsküla to Niine
- Ave. Duration
- 1h 25m
- Frequency
- Once daily
- Estimated price
- €4–7
- Schedules at
- reis.ee
Bus from Tallinna bussijaam to Niine
- Ave. Duration
- 1h 46m
- Frequency
- Twice daily
- Estimated price
- €5–7
- Schedules at
- reis.ee
Bus from Pärnu bussijaam to Niine
- Ave. Duration
- 2h 11m
- Frequency
- Once daily
- Estimated price
- €6–9
- Schedules at
- reis.ee
- Phone
- +372 627 9080
- info@hansabuss.ee
- Website
- hansabuss.ee
Bus from Viljandi bussijaam to Tallinna bussijaam
- Ave. Duration
- 2h 15m
- Frequency
- Every 3 hours
- Estimated price
- €11–15
- Website
- https://hansabuss.ee/en/
- Schedules at
- https://hansabuss.ee/en/liinireisid/commercial-lines/
- Phone
- +372 518 8493
- info@estonianlines.eu
- Website
- estonianlines.eu
Bus from Viljandi bussijaam to Tallinna bussijaam
- Ave. Duration
- 2h 10m
- Frequency
- Twice daily
- Estimated price
- €1–4
- Website
- https://www.estonianlines.eu/en/
- Phone
- +372 641 8218
- grupp@atko.ee
- Website
- atko.ee
Bus from Ugala to Pärnu bussijaam
- Ave. Duration
- 2h 8m
- Frequency
- Twice daily
- Schedules at
- atko.ee
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 How to get from Florence to Rome, Getting to Milan from the airport, and 5 delightfully under-the-radar French towns you need to visit - to help you get the most out of your next trip.
More Questions & Answers
There are 194+ hotels available in Haapsalu.



























