The average bus between Milan and Lucerne takes 4h 2m and the fastest bus takes 3h 28m. The bus service runs several times per day from Milan to Lucerne. The journey time may be longer on weekends and holidays; use the search form on this page to search for a specific travel date.
Buses run 3 times a day between Milan and Lucerne. The earliest departure is at 12:51 AM at night, and the last departure from Milan is at 9:58 PM which arrives into Lucerne at 12:10 AM. All services require a transfer at qt8 m1 and take an average of 4h 2m. The schedules shown below are for the next available departures.

1h 28m • 1 change

2h 20m • 1 change
Arrives next day

2h 12m • 1 change

1h 28m • 1 change

2h 39m • 1 change
Arrives next day

2h 12m • 1 change

1h 28m • 1 change

2h 39m • 1 change

3h 51m • 1 change
Arrives next day

2h 12m • 1 change
Want to know about travelling from Milan to Lucerne? We have put together a list of the most frequently asked questions from our users such as: What is the cheapest mode of transport? What is the quickest option? How much do tickets usually cost? and many more.
No, there is no direct bus from Milan to Lucerne. However, there are services departing from Milan station and arriving at Lucerne station via Luzern. The journey, including transfers, takes approximately 4h 2m.
Milan to Lucerne bus services, operated by ATM, depart from Milan station.
Milan to Lucerne bus services, operated by ATM, arrive at Luzern station.
Book your Milan to Lucerne bus tickets online with ATM, FlixBus and RegioJet.
The distance between Milan and Lucerne is 189 km. The road distance is 240 km.
FlixBus operates a bus from Milan to Luzern 3 times a day. Tickets cost CHF 17–30 and the journey takes 3h 20m. RegioJet also services this route twice a week.