Zagreb to Ljubljana is the easiest international hop in this part of Europe — 140 kilometres, one EU-internal border, finished in 2 hours by both bus and train. Buses run every 1–2 hours from Zagreb Bus Station and tickets start at €9 on FlixBus or Arriva. The train is slightly slower but more comfortable and arrives directly at Ljubljana's central station, a 5-minute walk to the river.
This is the route most Balkan road-trippers take to 'graduate' from the former-Yugoslav side into the Alps. The border between Croatia and Slovenia is open but Croatia has not fully joined Schengen yet for land crossings (full integration is rolling out), so expect a routine passport check that adds 10–20 minutes. Both bus and train do the run in about the same time; bus is cheaper, train is more relaxed. If you're booking last minute, the bus is the safer bet — there are 8–10 daily departures.
Options compared
Typical schedule
Schedules vary by season — confirm tomorrow's exact departures on the live results page.
Border crossing
Croatia → Slovenia, EU-internal. Random ID/passport checks since Croatia's partial Schengen integration. Allow an extra 10–20 minutes. EU/UK/US/Canadian passports — no issues.
Arrival in Ljubljana
FlixBus and Arriva drop at Ljubljana Bus Station, attached to the train station. Both are a 10-minute walk to Prešeren Square and the old town. Trains arrive at the same complex.
When to go
Year-round, every day. Slovenia is gorgeous in autumn (Sept–Oct) and pretty in winter under snow. Avoid Friday evening departures from Zagreb — locals heading home for the weekend, full buses.
Insider tips
- →Buy bus tickets online — FlixBus and GetByBus both sell the same Arriva seats. Walk-up prices at the station are sometimes 30% higher.
- →Trains take Euros only on the Slovenian side, Kuna/Euro on the Croatian side. Buses accept card.
- →If you have time, stop in Samobor or Brežice for half a day — both pretty small towns on the route.
- →Ljubljana is tiny — walking distance from the station everywhere. Don't take a taxi.
- →Going on to Lake Bled? Take a Ljubljana–Bled bus from the same station, 1h15, €7.
Live prices and schedules via Bookaway — instant e-ticket, no booking fees, mobile-friendly.
Book Zagreb → Ljubljana →Cross-border medical cover for the Balkans from €1.50/day with SafetyWing. Cancel anytime.
Add insurance →