There are 13 ways to get from Milan to Viljandi by plane, train, bus, 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.
Fly Milan Linate Airport to Lennart Meri International Airport, train
best- Fly from Milan Linate Airport (LIN) to Lennart Meri International Airport (TLL)LIN - TLL
- Take the train from Tallinn to Viljandi
10h 1m€106–288Train to Milano Malpensa Airport, fly to Lennart Meri International Airport, train
cheapest- Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Fly from Milano Malpensa Airport (MXP) to Lennart Meri International Airport (TLL)MXP - TLL
- Take the train from Tallinn to Viljandi
9h 10m€78–251Train, bus via Warsaw
- Take the train from Milano Centrale to Verona Porta NuovaFr
- Take the train from Verona Porta Nuova to Rosenheim89
- Take the train from Rosenheim to Warszawa CentralnaIc
- Take the bus from Warsaw to Pärnu
- Take the bus from Pärnu bussijaam to Vabaduse plats145
36h 55m€133–400Bus
- Take the bus from Milano, Autostazione Lampugnano to Warsaw, Bus Station West
- Take the bus from Warsaw, Bus Station West to Parnu, Bus Station
- Take the bus from Pärnu bussijaam to Vabaduse plats145
40h 24m€113–236Drive 2,318.1 km
- Drive from Milan to Viljandi2,318.1 km
24h 57m€367–529Train to Milano Malpensa Airport, fly to Helsinki Airport, bus, train
- Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Fly from Milano Malpensa Airport (MXP) to Helsinki Airport (HEL)MXP - HEL
- Take the bus from Helsinki to Tallinn
- Take the train from Tallinn to Viljandi
10h 37mBus to Il Caravaggio International Airport, fly to Helsinki Airport, bus, train
- Take the bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Fly from Il Caravaggio International Airport (BGY) to Helsinki Airport (HEL)BGY - HEL
- Take the bus from Helsinki to Tallinn
- Take the train from Tallinn to Viljandi
10h 36mTrain to Milano Malpensa Airport, fly to Tartu Ülenurme Airport, bus
- Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Fly from Milano Malpensa Airport (MXP) to Tartu Ülenurme Airport (TAY)MXP - TAY
- Take the bus from Tartu bussijaam to Viljandi bussijaam
11h 49m€157–419Train to Milano Malpensa Airport, fly to Riga International Airport, train, bus
- Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Fly from Milano Malpensa Airport (MXP) to Riga International Airport (RIX)MXP - RIX
- Take the train from Riga-Pasazieru to Valga
- Take the bus from Valga bussijaam to Reinu tee
12h 27mBus to Il Caravaggio International Airport, fly to Riga International Airport, train, bus
- Take the bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Fly from Il Caravaggio International Airport (BGY) to Riga International Airport (RIX)BGY - RIX
- Take the train from Riga-Pasazieru to Valga
- Take the bus from Valga bussijaam to Reinu tee
12h 36mTrain, bus
- Take the train from Milano Centrale to Frankfurt(Main)HbfEc
- Take the bus from Frankfurt to Rīga
- Take the train from Riga-Pasazieru to Valga215
- Take the bus from Valga bussijaam to Reinu tee80
43h 10mBus, train
- Take the bus from Milano, Autostazione Lampugnano to Bialystok, Bus Station
- Take the train from Białystok to Vilniaus geležinkelio stotis144
- Take the train from Vilnius to Valga215
- Take the bus from Valga bussijaam to Vabaduse plats80
45h 21mTrain, bus #2
- Take the train from Milano Centrale to Verona Porta Nuova
- Take the bus from Verona to Katowice
- Take the bus from Katowice to Tallinn
- Take the bus from Tallinna bussijaam to Viljandi bussijaam375 / ...
2d 5h
Milan to Viljandi by train and bus
Questions & Answers
The cheapest way to get from Milan to Viljandi is to bus which costs €110 - €240 and takes 40h 24m.
The fastest way to get from Milan to Viljandi is to train and fly which takes 9h 10m and costs €75 - €260.
No, there is no direct bus from Milan to Viljandi. However, there are services departing from Milano, Autostazione Lampugnano and arriving at Vabaduse plats via Warsaw, Bus Station West and Pärnu bussijaam. The journey, including transfers, takes approximately 40h 24m.
The distance between Milan and Viljandi is 2026 km. The road distance is 2318.1 km.
The best way to get from Milan to Viljandi without a car is to train and bus via Warsaw which takes 36h 55m and costs €130 - €400.
It takes approximately 10h 1m to get from Milan to Viljandi, including transfers.
Milan to Viljandi bus services, operated by FlixBus, depart from Milano, Autostazione Lampugnano station.
Milan to Viljandi bus services, operated by FlixBus, arrive at Warsaw, Bus Station West.
Viljandi is 1h ahead of Milan. It is currently 1:13 PM in Milan and 2:13 PM in Viljandi.
Yes, the driving distance between Milan to Viljandi is 2318 km. It takes approximately 24h 57m to drive from Milan to Viljandi.
What companies run services between Milan, Italy and Viljandi, Estonia?
You can take a bus from Milano, Autostazione Lampugnano to Vabaduse plats via Warsaw, Bus Station West and Pärnu bussijaam in around 40h 24m.
Transport is disrupted due to the Russia-Ukraine war. Read more
- Website
- lufthansa.com
Flights from Milan Linate Airport to Lennart Meri International Airport via Frankfurt
- Ave. Duration
- 5h 15m
- When
- Every day
- Estimated price
- €100–260
Flights from Milan Linate Airport to Lennart Meri International Airport via Munich
- Ave. Duration
- 5h 35m
- When
- Monday
- Estimated price
- €85–320
Flights from Milano Malpensa Airport to Helsinki Airport via Munich
- Ave. Duration
- 4h 55m
- When
- Every day
- Estimated price
- €75–180
Flights from Milano Malpensa Airport to Riga International Airport via Munich
- Ave. Duration
- 5h 15m
- When
- Monday, Tuesday, Thursday, Friday, and Sunday
- Estimated price
- €60–230
Flights from Milano Malpensa Airport to Riga International Airport via Frankfurt
- Ave. Duration
- 6h
- When
- Every day
- Estimated price
- €75–290
- Website
- ryanair.com
Flights from Milano Malpensa Airport to Lennart Meri International Airport
- Ave. Duration
- 3h 5m
- When
- Tuesday and Saturday
- Estimated price
- €80–230
Flights from Milano Malpensa Airport to Lennart Meri International Airport via Berlin Brandenburg
- Ave. Duration
- 4h 55m
- When
- Monday and Saturday
- Estimated price
- €80–230
Flights from Il Caravaggio International Airport to Helsinki Airport
- Ave. Duration
- 3h 10m
- When
- Tuesday, Thursday, Friday, and Saturday
- Estimated price
- €60–190
Flights from Il Caravaggio International Airport to Helsinki Airport via Warsaw Modlin
- Ave. Duration
- 5h 55m
- When
- Thursday
- Estimated price
- €60–190
Flights from Il Caravaggio International Airport to Riga International Airport
- Ave. Duration
- 2h 45m
- When
- Monday, Tuesday, Thursday, Friday, Saturday, and Sunday
- Estimated price
- €65–190
Flights from Il Caravaggio International Airport to Riga International Airport via Vienna
- Ave. Duration
- 5h
- When
- Friday
- Estimated price
- €65–190
- Website
- finnair.com
Flights from Milano Malpensa Airport to Lennart Meri International Airport via Helsinki Airport
- Ave. Duration
- 4h 55m
- When
- Every day
- Estimated price
- €160–190
Flights from Milano Malpensa Airport to Helsinki Airport
- Ave. Duration
- 3h 5m
- When
- Every day
- Estimated price
- €70–230
Flights from Milano Malpensa Airport to Tartu Ülenurme Airport via Helsinki Airport
- Ave. Duration
- 5h
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €150–390
- Website
- flysas.com
Flights from Milan Linate Airport to Lennart Meri International Airport via Stockholm
- Ave. Duration
- 5h 35m
- When
- Monday to Friday
- Estimated price
- €90–300
Flights from Milano Malpensa Airport to Lennart Meri International Airport via Copenhagen
- Ave. Duration
- 4h 55m
- When
- Every day
- Estimated price
- €70–260
Flights from Milano Malpensa Airport to Helsinki Airport via Copenhagen
- Ave. Duration
- 5h 10m
- When
- Every day
- Estimated price
- €100–230
- Website
- airbaltic.com
Flights from Milan Linate Airport to Lennart Meri International Airport via Berlin Brandenburg
- Ave. Duration
- 4h 25m
- When
- Sunday
- Estimated price
- €85–320
Flights from Milano Malpensa Airport to Lennart Meri International Airport via Riga International Airport
- Ave. Duration
- 4h 30m
- When
- Tuesday, Thursday, Saturday, and Sunday
- Estimated price
- €80–750
Flights from Milano Malpensa Airport to Riga International Airport
- Ave. Duration
- 2h 45m
- When
- Tuesday, Thursday, Saturday, and Sunday
- Estimated price
- €60–230
- Website
- austrian.com
Flights from Milan Linate Airport to Lennart Meri International Airport via Vienna
- Ave. Duration
- 5h 20m
- When
- Monday
- Estimated price
- €85–330
- Website
- norwegian.com
Flights from Il Caravaggio International Airport to Helsinki Airport
- Ave. Duration
- 2h 55m
- When
- Thursday and Sunday
- Estimated price
- €85–170
- Phone
- +372 616 0245
- klienditugi@elron.ee
- Website
- elron.ee
Train from Tallinn to Viljandi
- Ave. Duration
- 2h 5m
- Frequency
- 5 times a day
- Estimated price
- €8–14
- Website
- https://elron.ee/en
- Express Train Ticket
- €9–14
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Milano Centrale to Verona Porta Nuova
- Ave. Duration
- 1h 13m
- Frequency
- Hourly
- Estimated price
- €14–35
- Schedules at
- trenitalia.com
- Phone
- +39 06 68475475
- ufficiogruppi@trenitalia.it
- Website
- trenitalia.com
Train from Milano Centrale to Verona Porta Nuova
- Ave. Duration
- 1h 23m
- Frequency
- 6 times a week
- Estimated price
- €35–85
- Website
- https://www.trenitalia.com/en.html
- 1st Class
- €55–85
- 2nd Class
- €35–50
Train from Milano Centrale to Frankfurt(Main)Hbf
- Ave. Duration
- 7h 34m
- Frequency
- Once daily
- Estimated price
- €130–200
- Website
- https://www.trenitalia.com/en.html
- 1st Class
- €140–200
- 2nd Class
- €130–180
- Phone
- +49 30 311 682904
- Website
- bahn.de
Train from Verona Porta Nuova to Rosenheim
- Ave. Duration
- 4h 47m
- Frequency
- Every 3 hours
- Estimated price
- €35–100
- Website
- https://int.bahn.de/en
- Phone
- +48 22 322 22 22
- infokraj@intercity.pl
- Website
- intercity.pl
Train from Rosenheim to Warszawa Centralna
- Ave. Duration
- 13h 46m
- Frequency
- 4 times a week
- Estimated price
- €40–150
- Website
- https://www.intercity.pl/en/
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Ave. Duration
- 41 min
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
Train from Milano Centrale to Verona Porta Nuova
- Ave. Duration
- 1h 52m
- Frequency
- Hourly
- Estimated price
- €10–13
- Website
- https://www.trenord.it/en/
- Phone
- +39 02-72494949
- Website
- malpensaexpress.it
Train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Ave. Duration
- 41 min
- Frequency
- Hourly
- Estimated price
- €15
- Website
- https://www.malpensaexpress.it/en/
- 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
Train from Białystok to Vilniaus geležinkelio stotis
- Ave. Duration
- 6h 41m
- Frequency
- Once daily
- Website
- https://ltglink.lt/en
Train from Vilnius to Valga
- Ave. Duration
- 6h 56m
- Frequency
- Once daily
- Website
- https://ltglink.lt/en
- Phone
- +358 0600 02010
- info@onnibus.com
- Website
- onnibus.com
Bus from Warsaw to Pärnu
- Ave. Duration
- 11h 45m
- Frequency
- Twice daily
- Estimated price
- €40–60
- Website
- https://www.onnibus.com/home
- 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 Reinu tee
- Ave. Duration
- 1h 28m
- Frequency
- Twice daily
- Estimated price
- €3–5
- Website
- https://gobus.ee/en/
Bus from Valga bussijaam to Vabaduse plats
- Ave. Duration
- 1h 39m
- Frequency
- Twice daily
- Estimated price
- €3–5
- Website
- https://gobus.ee/en/
Bus from Tallinna bussijaam to Viljandi bussijaam
- Ave. Duration
- 2h 20m
- Frequency
- Once daily
- Estimated price
- €4–7
- 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
Rome2Rio's guide to FlixBus
Contact Details
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Milano, Autostazione Lampugnano to Warsaw, Bus Station West
- Ave. Duration
- 24h 10m
- Frequency
- Once daily
- Estimated price
- €70–150
- Website
- https://www.flixbus.co.uk
Bus from Warsaw, Bus Station West to Parnu, Bus Station
- Ave. Duration
- 12h 50m
- Frequency
- 4 times a day
- Estimated price
- €40–80
- Website
- https://www.flixbus.co.uk
Bus from Milano, Autostazione Lampugnano to Bialystok, Bus Station
- Ave. Duration
- 27h 5m
- Frequency
- Once daily
- Estimated price
- €120–180
- Website
- https://www.flixbus.co.uk
- info@flibco.com
- Website
- flibco.com
Bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €8–10
- Website
- https://www.flibco.com/en
- Phone
- +39 02 3008 9000
- mail@autostradale.it
- Website
- autostradale.it
Bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Ave. Duration
- 1h
- Frequency
- Every 30 minutes
- Estimated price
- €4–17
- Website
- https://autostradale.it/?lang=en-GB
- Standard Rate
- €13–17
- 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/
Bus from Tallinna bussijaam to Viljandi bussijaam
- Ave. Duration
- 2h 15m
- Frequency
- 4 times a day
- Estimated price
- €11–15
- 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
- +371 67 214 512
- info@ecolines.lv
- Website
- ecolines.net
Bus from Frankfurt to Rīga
- Ave. Duration
- 28h 30m
- Frequency
- 3 times a week
- Estimated price
- €90–120
- Website
- https://ecolines.net/
- Phone
- 13 43 232 76
- biuro@miskrosno.pl
- Website
- miskrosno.pl
Bus from Verona to Katowice
- Ave. Duration
- 17h 15m
- Frequency
- Once a week
- Schedules at
- miskrosno.pl
- Book at
- api.euroticket.pl
- Phone
- +373 789 18 888
- info@busline.md
- Website
- busline.md
Bus from Katowice to Tallinn
- Ave. Duration
- 29h 24m
- Frequency
- 6 times a week
- Website
- https://busline.md/en/
- Phone
- +372 518 8493
- info@estonianlines.eu
- Website
- estonianlines.eu
Bus from Tallinna bussijaam to Viljandi bussijaam
- Ave. Duration
- 2h 20m
- Frequency
- Once daily
- Website
- https://www.estonianlines.eu/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
Italy Travel Guides
Read the travel guide
Getting to Milan from the airport
Read the travel guide
Want to know more about Flixbus?
Read the travel guide
More Questions & Answers
Book your Milan to Viljandi bus tickets online with Omio.
There are 120+ hotels available in Viljandi.























































































