The incident happened on the road connecting the capital Zagreb with the northern Adriatic port of Rijeka.
It is one of the main roads in the country and is usually crowded during the tourist season and at weekends.
Firefighters from the nearby region of Vrbovsko gave “technical malfunction” of the plane as the reason for the landing.
The pilot of the single-engine Cessna 150 said he had a choice either to land in a field or on the road after the engine malfunctioned.
"It was a hard decision because the traffic was very dense today and I had to find space to land between cars," Teodor Goricanec told local media.
"Luckily no-one was injured," he added.