Rome2Rio

How to get fromMilan to Viljandiby plane, train, bus or car

Find Transport to Viljandi

See all options

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.

  1. Fly Milan Linate Airport to Lennart Meri International Airport, train

    best
    1. Fly from Milan Linate Airport (LIN) to Lennart Meri International Airport (TLL)planeLIN - TLL
    2. Take the train from Tallinn to Viljanditrain
    10h 1m
    €106–288
  2. Train to Milano Malpensa Airport, fly to Lennart Meri International Airport, train

    cheapest
    1. Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1train
    2. Fly from Milano Malpensa Airport (MXP) to Lennart Meri International Airport (TLL)planeMXP - TLL
    3. Take the train from Tallinn to Viljanditrain
    9h 10m
    €78–251
  3. Train, bus via Warsaw

    1. Take the train from Milano Centrale to Verona Porta NuovatrainFr
    2. Take the train from Verona Porta Nuova to Rosenheimtrain89
    3. Take the train from Rosenheim to Warszawa CentralnatrainIc
    4. Take the bus from Warsaw to Pärnubus
    5. Take the bus from Pärnu bussijaam to Vabaduse platsbus145
    36h 55m
    €133–400
  4. Bus

    1. Take the bus from Milano, Autostazione Lampugnano to Warsaw, Bus Station Westbus
    2. Take the bus from Warsaw, Bus Station West to Parnu, Bus Stationbus
    3. Take the bus from Pärnu bussijaam to Vabaduse platsbus145
    40h 24m
    €113–236
  5. Drive 2,318.1 km

    1. Drive from Milan to Viljandicar2,318.1 km
    24h 57m
    €367–529
  6. Train to Milano Malpensa Airport, fly to Helsinki Airport, bus, train

    1. Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1train
    2. Fly from Milano Malpensa Airport (MXP) to Helsinki Airport (HEL)planeMXP - HEL
    3. Take the bus from Helsinki to Tallinnbus
    4. Take the train from Tallinn to Viljanditrain
    10h 37m
  7. Bus to Il Caravaggio International Airport, fly to Helsinki Airport, bus, train

    1. Take the bus from Piazza Luigi di Savoia to Bergamo Airport Bus Stationbus
    2. Fly from Il Caravaggio International Airport (BGY) to Helsinki Airport (HEL)planeBGY - HEL
    3. Take the bus from Helsinki to Tallinnbus
    4. Take the train from Tallinn to Viljanditrain
    10h 36m
  8. Train to Milano Malpensa Airport, fly to Tartu Ülenurme Airport, bus

    1. Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1train
    2. Fly from Milano Malpensa Airport (MXP) to Tartu Ülenurme Airport (TAY)planeMXP - TAY
    3. Take the bus from Tartu bussijaam to Viljandi bussijaambus
    11h 49m
    €157–419
  9. Train to Milano Malpensa Airport, fly to Riga International Airport, train, bus

    1. Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1train
    2. Fly from Milano Malpensa Airport (MXP) to Riga International Airport (RIX)planeMXP - RIX
    3. Take the train from Riga-Pasazieru to Valgatrain
    4. Take the bus from Valga bussijaam to Reinu teebus
    12h 27m
  10. Bus to Il Caravaggio International Airport, fly to Riga International Airport, train, bus

    1. Take the bus from Piazza Luigi di Savoia to Bergamo Airport Bus Stationbus
    2. Fly from Il Caravaggio International Airport (BGY) to Riga International Airport (RIX)planeBGY - RIX
    3. Take the train from Riga-Pasazieru to Valgatrain
    4. Take the bus from Valga bussijaam to Reinu teebus
    12h 36m
  11. Train, bus

    1. Take the train from Milano Centrale to Frankfurt(Main)HbftrainEc
    2. Take the bus from Frankfurt to Rīgabus
    3. Take the train from Riga-Pasazieru to Valgatrain215
    4. Take the bus from Valga bussijaam to Reinu teebus80
    43h 10m
  12. Bus, train

    1. Take the bus from Milano, Autostazione Lampugnano to Bialystok, Bus Stationbus
    2. Take the train from Białystok to Vilniaus geležinkelio stotistrain144
    3. Take the train from Vilnius to Valgatrain215
    4. Take the bus from Valga bussijaam to Vabaduse platsbus80
    45h 21m
  13. Train, bus #2

    1. Take the train from Milano Centrale to Verona Porta Nuovatrain
    2. Take the bus from Verona to Katowicebus
    3. Take the bus from Katowice to Tallinnbus
    4. Take the bus from Tallinna bussijaam to Viljandi bussijaambus375 / ...
    2d 5h

Milan to Viljandi by train and bus

Calendar4Weekly Services
Duration36h 55mAverage Duration
Ticket€133Cheapest Price
See schedules

Questions & Answers

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

Airlines
Train operators
Bus operators

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 guideItaly Travel Guides

More Questions & Answers