Air transportation.
Domestic flights on Croatia Airlines fly from Zagreb to Dubrovnik, Split, and Pula. In summer, a charter to the island of Krk is available once a week, and there is also air service between Split and Osijek.
Rail transportation.
Railroads connect all major cities in Croatia, except Dubrovnik (in this case, you need to take a train to Split and then change to a bus to Dubrovnik). Modern high-speed express trains run on Zagreb-Split, Zagreb-Osijek, and other popular routes.
Train tickets are cheaper if you buy them at the train ticket office on the platform rather than from the conductor on the train.