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€111–278Train 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 ZachodniaIc
- Take the bus from Warsaw, Bus Station West to Parnu, Bus Station
- Take the bus from Pärnu bussijaam to Vabaduse plats145
36h 46m€125–295Bus
- 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€116–224Drive 2,318.1 km
- Drive from Milan to Viljandi2,318.1 km
24h 57m€363–524Train 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 38mBus 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 37mTrain 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€137–339Train 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 Vabaduse plats
12h 36mBus 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 Vabaduse plats
12h 45mTrain, 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 Tartu215
- Take the bus from Maarjamõisa haigla to Kesklinna kool108 / ...
44h 9mBus, 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 4mTrain, bus #2
- Take the train from Milano Centrale to Verona Porta Nuova
- Take the bus from Verona to Kielce
- Take the bus from Kielce Bus Station to Pärnu Bus Station
- Take the bus from Pärnu bussijaam to Viljandi bussijaam145
46h 27m
Milan to Viljandi by train and bus
Questions & Answers
The cheapest way to get from Milan to Viljandi is to train and fly which costs €75 - €260 and takes 9h 10m.
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 46m and costs €120 - €300.
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 12:07 PM in Milan and 1:07 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.
- 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–250
Flights from Milan Linate Airport to Lennart Meri International Airport via Munich
- Ave. Duration
- 5h 35m
- When
- Monday
- Estimated price
- €80–310
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–210
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
- €60–180
Flights from Il Caravaggio International Airport to Riga International Airport via Vienna
- Ave. Duration
- 5h
- When
- Friday
- Estimated price
- €60–180
Flights from Il Caravaggio International Airport to Riga International Airport via Krakow
- Ave. Duration
- 5h 45m
- When
- Tuesday
- Estimated price
- €60–180
- 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
- €75–220
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
- €110–290
- Website
- flysas.com
Flights from Milan Linate Airport to Lennart Meri International Airport via Stockholm
- Ave. Duration
- 9h 40m
- When
- Wednesday to Sunday
- Estimated price
- €120–320
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
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €85–260
Flights from Milano Malpensa Airport to Helsinki Airport via Stockholm
- Ave. Duration
- 5h 30m
- When
- Sunday
- Estimated price
- €85–260
- Website
- airbaltic.com
Flights from Milan Linate Airport to Lennart Meri International Airport via Berlin Brandenburg
- Ave. Duration
- 4h 25m
- When
- Sunday
- Estimated price
- €80–310
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–320
- Website
- norwegian.com
Flights from Il Caravaggio International Airport to Helsinki Airport
- Ave. Duration
- 2h 55m
- When
- Thursday and Sunday
- Estimated price
- €85–140
- Phone
- +372 616 0245
- klienditugi@elron.ee
- Website
- elron.ee
Train from Tallinn to Viljandi
- Ave. Duration
- 2h 5m
- Frequency
- 4 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
- €16–40
- 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 4 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 Zachodnia
- Ave. Duration
- 12h 32m
- Frequency
- 3 times a week
- Estimated price
- €30–50
- Website
- https://www.intercity.pl/en/
- 2nd Class
- €30–45
- 1st Class
- €35–50
- 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 Riga-Pasazieru to Tartu
- Ave. Duration
- 3h 34m
- 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 41m
- Frequency
- Once daily
- Website
- https://ltglink.lt/en
Rome2Rio's guide to FlixBus
Contact Details
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Warsaw, Bus Station West to Parnu, Bus Station
- Ave. Duration
- 12h 50m
- Frequency
- Twice daily
- Estimated price
- €40–55
- Website
- https://www.flixbus.co.uk
Bus from Milano, Autostazione Lampugnano to Warsaw, Bus Station West
- Ave. Duration
- 24h 10m
- Frequency
- Once daily
- Estimated price
- €70–160
- 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
Bus from Kielce Bus Station to Pärnu Bus Station
- Ave. Duration
- 17h 25m
- Frequency
- Once daily
- Estimated price
- €85–120
- 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/
Bus from Maarjamõisa haigla to Kesklinna kool
- Ave. Duration
- 1h 3m
- Frequency
- 3 times a day
- Estimated price
- €7–9
- Website
- https://luxexpress.eu/en/
Bus from Pärnu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 30m
- 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/
Bus from Maarjamõisa haigla to Kesklinna kool
- Ave. Duration
- 1h 2m
- Frequency
- Twice daily
- Estimated price
- €2–4
- Website
- https://gobus.ee/en/
Bus from Pärnu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 25m
- 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
Bus from Pärnu bussijaam to Viljandi bussijaam
- Ave. Duration
- 2h 15m
- Frequency
- 6 times a week
- Website
- Atko Bussiliinid AS
- 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 Maarjamõisa haigla to Kesklinna kool
- Ave. Duration
- 1h 5m
- 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
Bus from Pärnu bussijaam to Viljandi bussijaam
- Ave. Duration
- 2h
- 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
Bus from Pärnu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 25m
- 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
Bus from Pärnu bussijaam to Viljandi bussijaam
- Ave. Duration
- 1h 30m
- Frequency
- Twice a week
- Estimated price
- €7–10
- 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 Kielce
- Ave. Duration
- 22h 40m
- Frequency
- Once a week
- Schedules at
- miskrosno.pl
- Book at
- api.euroticket.pl
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 119+ hotels available in Viljandi.














































































