Zagreb and Rijeka are less than 200 km apart, so there are no planes connecting the two cities, but there are plenty of buses and trains.
By car
The A6 motorway (via the A1) covers the entire distance of 167 km between Zagreb and Rijeka, so Rijeka can be reached in an hour and a half. The motorway toll is 70 kn. If you want to avoid the motorway, the journey is going to take more than 4 and a half hours.
See the map with possible routes on ViaMichelin
By bus
Zagreb and Rijeka are relatively close to one another and they are very well connected, with more than 25 buses daily. Travel time is between 1.5 and 3 hours, and the cost is 50-120 kn.
Most buses have wifi, but no toilet, so the longer lines mostly make one stop, while the shorter ones (1.5-2 hours) don’t make any stops. You can find the timetables and prices on www.buscroatia.com.
By train
There are three trains departing from Rijeka to Zagreb daily. One-way ticket costs around 100 kn and the journey takes anywhere between 3 h 40 min and 4 h 20 min. You can find the trains and buy the tickets below:
https://prodaja.hzpp.hr/en
By car share
There are many people travelling between the two cities, especially during weekends, so make sure to check groups such as Nudim - tražim prijevoz, where you can find other people's adds offering a place in their car, or post your request. Another useful site to find car share options is Bla Bla Car