Thirty-nine people have been killed and many more are missing after a 7.4-magnitude quake hit off the Guatemala's Pacific coast, the president has said.
Firefighters were searching the rubble for survivors in San Marcos region
Otto Perez Molina declared a national alert and advised people to evacuate tall buildings as a precaution.
Officials said landslides had buried roads and it would take 24 hours to restore links to the quake-hit area.
Frightened people fled from offices and homes around the region, as buildings shook from Mexico City to San Salvador.
Quake officials said the tremor hit at about 10:35 local time (1635 GMT) about 23km (15 miles) from the Guatemalan town of Champerico.
Mr Perez Molina has given several news conferences, each time raising the number of casualties.
He was touring the affected area and said 39 deaths had now been confirmed in what he called a tragedy.
He had earlier said 15 people were believed to be trapped under ground and about 100 people were missing.
The national voluntary fire service gave details on its twitter feed of the damage across the San Marcos region, describing how firefighters had pulled five bodies from the rubble including that of an 11-year-old boy.
The service said 14 houses had been destroyed in Quetzaltenango, a city that houses dozens of language schools popular with tourists.
Firefighters earlier said a school had collapsed in San Pedro Sacatepequez, also in the San Marcos area.
The US Pacific Tsunami Warning Center said in a statement there was no threat of a destructive widespread tsunami.
But it added: "Earthquakes of this size sometimes generate local tsunamis that can be destructive along coasts located within a hundred kilometres of the earthquake epicentre."
The region is often hit by quakes, which have periodically caused huge damage and many deaths.
Are you in the region? Have you been affected by the earthquake? You can contact the BBC using the form below.
Send your pictures and videos to email@example.com or text them to 61124 (UK) or +44 7624 800 100 (International).