Teams are looking for survivors trapped in the rubble of collapsed buildings.
The quake is the deadliest in the world this year.
Most people who died were in western Iran - in Sarpol-e-Zahab, a town 15km (10 miles) from the border, and other parts of Kermanshah province.
The town's main hospital was severely damaged, leaving it struggling to treat hundreds of wounded, state TV reported.
A woman and her baby were pulled alive from rubble in the town, Iranian media said.
Running water and electricity cut out in some cities, and after buildings collapsed people were forced to spend hours outdoors in parks or streets in cold weather.
"We need shelter," a man in Sarpol-e Zahab told state TV.
"Where is the aid? Where is the help?" he asked.
One aid agency said 70,000 people needed shelter after the quake.
Iranian officials said 407 people had died in the country. Some soldiers and border guards were among the dead, the Iranian army's commander-in-chief told the state news channel IRINN.
In Iraq, nine have died, a Red Crescent spokesman told the BBC. A UN office in Iraq said more than 500 people were injured there, and the earthquake was felt in Irbil, Sulaimaniya, Kirkuk and Basra as well as the capital, Baghdad.
Many homes in the predominantly Kurdish mountainous area are made of mud bricks and are vulnerable in quakes as large as Sunday's.
Landslides have made it harder for rescuers to reach those affected in rural areas.
The quake hit at 21:18 local time (18:18 GMT) about 30km south-west of Halabja, near the north-eastern border with Iran, the US Geological Survey (USGS) said.
More than 1.8 million people live within 100km of the epicentre, the UN estimates.
The earthquake struck at a relatively shallow depth of 23.2 km, and tremors were felt in Turkey, Israel and Kuwait.
In 2003, a 6.6-magnitude quake destroyed the historic city of Bam in south-east Iran, killing 26,000 people.
Sunday's quake is the deadliest to hit Iran since 2012. But it is only the sixth earthquake of magnitude-7.0 or more in 2017 - there were 16 last year and 19 the year before.