A 15-year-old was reported to be in critical condition and 16 other people were injured, authorities said.
The European seismological agency, EMSC, said the 5.3 earthquake struck a wide area north of the capital, Zagreb, at 6:23 a.m. (0523 GMT). The epicenter was 7 kilometers (4 miles) north of Zagreb at a depth of 10 kilometers (6 miles).
At least four weaker temblors followed the initial quake.
Prime Minister Andrej Plenkovic said the earthquake was the biggest in Zagreb in the last 140 years.
Many buildings cracked and walls and rooftops were damaged. Streets were littered with debris. Concrete slabs fell on cars and chimneys landed in front of entrances.
Footage from the scene showed mothers dressed in nightgowns hugging their newborn babies in a parking lot as they evacuated a damaged maternity hospital amid freezing temperatures. The women, newborn babies and incubators were being moved to a new location with the help of the army.