It’s not very straightforward getting from Ljubljana to Milan by train, but it was a very interesting journey, especially as we got to use the tram on the section from Villa Opicina to Trieste. This is really a journey in four parts, so you could do the whole journey in one day, or stop along the way if you want to spend time in Trieste or Venice, which is what we did. Basically, you first need to get from Ljubljana to Villa Opicina, then take the tram to Trieste, then a train to Venice, and finally a train to Milan.
Part 1 of 4 – Ljubljana To Villa Opicina
Note: The train service from Ljubljana to Sezana is currently suspended until further notice (apart from one train), but there is a replacement bus service that operates instead.
The first part of the journey is pretty straightforward, as it just involves getting a local train (or replacement bus service). There’s no need to buy tickets in advance, as these can be bought on the day at the ticket office in Ljubljana. The trains along this route only run from Monday to Friday, and there are six trains a day. There is a notice in Ljubljana train station saying this train service is suspended, but we were told that the 14:33 train is still running.
We left at 10:40, so got the repacement bus service. The bus was modern and comfortable and had a toilet.
Bus/Train Times Ljubljana To Villa Opicina
04:30 – arrives 06:33 (replacement bus service)
08:10 – arrives 10:15 (replacement bus service)
10:40 – arrives 12:42 (replacement bus service)
14:33 – arrives 16:40 (train)
18:54 – arrives 21:00 (replacement bus service)
19:50 – arrives 21:54 (replacement bus service)
For all these trains you need to change at Sezana, with a wait time of 3-6 minutes. We got the 10:40 train, which arrived 20 minutes later than planned at Sezana, but the train was waiting for the bus to arrive. So don’t worry about missing the train if the bus is late. We were the only passengers on the train!
You’ll need to get the 08:10 train of you want to get to Milan the same day.
A single ticket for this journey costs EUR 8.70 ($9.60), which includes EUR 1.00 booking fee.
Part 2 of 4 – Villa Opicina To Trieste Via Tram/Funicular
This part of the journey is only 5.2 km, but is quite interesting, as you get to take the Trieste-Opicina Tramway. This is unusual because it’s a hybrid of tramway and funicular railway, which we’ve never encountered up until now. It connects the village of Villa Opicina with Piazza Oberdan on the northern edge of the city of Trieste.
The Trieste-Opicina Tramway operates every 20 minutes from 07:00 until 20:00.
Tickets cost EUR 1.35 ($1.50) and are valid for 1 hour, so you can stay on the tram until the hour is up if you like. See Trieste-Opicina Tram for full details of this service.
Note that it’s about a 15-minute walk from Villa Opicina train station to the tram station. There aren’t any signs pointing the way, but it’s fairly straightforward. Leave the station (there is only one road) and walk around 300-400 meters until you get to a t-junction, turn left and walk up the hill (300-400 meters) until you come to a main road, turn right and walk ahead for around 100 meters and you’ll see the tram station on your right. Buy tickets in the cafe.
Where To Stay In Trieste: While in Trieste we stayed at the excellent Nuovo Albergo Centro Hotel.
Part 3 of 4 – Trieste To Venice
This part of the journey is also very straightforward, as there are numerous trains that run along this route every day, from very early morning until late at night. Some trains take around 2 hours, while others take 3.5 hours, so check before you board the train, as there could be a later train that arrives earlier.
Also note that some trains go to Venezia Mestre, while others go to Venezia Santa Lucia. Venezia Mestre station is on the mainland, while Venezia Santa Lucia is on the island of Venice. A shuttle service runs between the two stations.
Onward trains to Milan go from both these stations, but there are many more trains that depart from Venezia Santa Lucia, so I’d suggest getting a train to that station if you can.
Ticket prices range from $11 to $25 depending on which train you get, with the faster trains sometimes being the cheapest. We used our Eurail and InterRail passes for this journey.
Where To Stay In Venice: We only visited Venice for a few hours, but you can find some great hotel deals at Agoda Venice.
Tip: You can leave your luggage at Venezia Santa Lucia station for a cost of EUR 6 for the first 5 hours, take a look around Venice and then get a later train to Milan. This is what we did. But note that queues for luggage storage are very long. We waited almost 1.5 hours.
Part 4 of 4 – Venice To Milan
The final leg of the journey is also straightforward, as it just involves an onward journey from Venice (either Venezia Mestre or Venezia Santa Lucia) to Milan (Milan Centrale). The journey time is 2 hours and 35 minutes for most trains along this route. We got the 16:20 train that arrived in Milan at 18:55.
Tickets are around $46 for this journey. We used our Eurail and InterRail passes for this journey, but had to pay EUR 10 ($11) each to reserve our seats.
This was one of the most modern trains we’ve taken in Europe and was very comfortable. There was a restaurant car, but an Americano cost EUR 3.80, which was even more expensive than in hyper-expensive Venice.
Where To Stay In Milan: For a great range of hotels in Milan, check out Agoda Milan.
We didn’t check the price of a single ticket from Ljubljana to Milan, as getting train information for this area proved to be quite difficult, due to the many different routes the trains can take.
Where To Buy Your Global Pass
Map Of Journey
The above map shows the journey by car, as it’s not possible to show the route by train using Google maps. It shows as a total distance of 510 km, which is around 320 miles.