“It lasted over 10 seconds. By far the strongest I have ever felt,” one witness said, adding that it was followed by several aftershocks.
The US Geological Survey said the earthquake measured 5.4, while the European Mediterranean Seismological Centre (EMSC) also reported a magnitude 5.3, followed by another magnitude 5.1 earthquake.
Prime Minister Andrej Plenkovic said the earthquake was the biggest in Zagreb in the last 140 years.
It caused widespread damage including to the city’s iconic cathedral, with the top of one of its two spires collapsing – all amid a partial coronavirus lockdown.
Downtown 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 car park 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.
In Zagreb, people fled apartments and took to the streets while parts of the capital experienced electricity cuts. A church bell tower was damaged and some buildings collapsed, Reuters news agency reported.
Several fires were also reported. Residents shared photos of belongings falling off shelves, broken bottles and glass inside homes.
Officials first said a 15-year-old was killed, but doctors later said she was in critical condition and they were fighting to save her life. They gave no immediate details on the extent of other injuries.