When it comes to Croatian cities, getting from Zagreb to Dubrovnik is going to take the longest because the distance is 600 km, but there are some spectacular sights along the way that will make it worth your while.
By car
The A1 route will take you to Ploče, which is the farthest south you can get to on the motorway, and it takes 5 or 5 and a half hours. When you get off the motorway at Ploče, you’re going to have to drive along a winding coastal road for about 100 km, or approximately 2 hours. The toll for the entire length of the motorway (Zagreb-Ploče) for Category I cars is 223 kn.
The cheaper option, which takes significantly longer, is to take the old road from Zagreb to Splilt.
There are two border crossings because the only way (for now) to reach Dubrovnik is through Neum, which is in Bosnia and Herzegovina. The names of the border crossings are Klek and Zaton Doli. You need your ID with you, so keep that in mind. There are almost always long lines of people waiting at these crossing, because Dubrovnik is a very popular tourist destination in the summer, so be patient.
Below you can find a link to ViaMichelin, offering you three different options for getting from Dubrovnik to Zagreb.
Zagreb – Dubrovnik ViaMichelin
By bus
There are about 10 daily buses from Zagreb to Dubrovnik, but because Dubrovnik is 600 km away, the bus drive takes 10-12 hours. The prices are 180-240 kn. If you can sleep on the bus, you might consider taking an overnight bus, departing at around 10 p.m. from Zagreb and arriving in Dubrovnik at 8 a.m. the following day.
Most buses nowadays have free wifi, some have sockets so you can charge your phone or laptop, but bus drivers in Croatia typically don’t allow you to use the toilet, so there are 15-minute pauses every 2 or 2.5 hours.
By train
The closest you can get to Dubrovnik by train is Ploče, but you have to change trains in Split and it takes more than 13 hours, plus an additional 2 hours to get to Dubrovnik. If you want to check your train options anyway, you can do it here: https://prodaja.hzpp.hr/en
By plane
There are three or four flights a day from Zagreb to Dubrovnik, operated by Croatia Airlines. The prices vary from 250 to 1,000 kn, the flight time is about an hour, plus an additional half an hour to get to Zagreb airport and than half an hour to get from Dubrovnik airport to the city.
www.croatiaairlines.com
By car share
More and more people are using car share in Croatia, and this route is especially popular because it’s long, so drivers like the company, and sharing the expenses is never bad. Bla Bla Car is a popular option that you can consider.
www.blablacar.hr