More than 500 people were injured and some 30 people were trapped under rubble, Turkish officials said, as rescue teams were dispatched to the affected areas.
Footage from state broadcaster TRT showed emergency service workers pulling out an injured person as they sifted through the rubble of a collapsed building in Elazig.
Hundreds of resident were left homeless or with damaged homes.
Health minister Fahrettin Koca, who travelled to the afflicted area, said 13 people were killed in Elazig, including two people who suffered heart attacks, and five others died in Malatya. A total of 553 people were hurt, including 11 who were in serious condition.
Turkish president Recep Tayyip Erdogan said on Twitter that all measures were being taken to “ensure that the earthquake that occurred in Elazig and was felt in many provinces is overcome with the least amount of loss”.
The quake hit the region just before 9pm local time (6pm GMT) at a depth of 6.7km near the town of Sivrice in the eastern Elazig province, the Disaster and Emergency Management Presidency (AFAD) said. It was followed by several aftershocks, the strongest with magnitudes 5.4 and 5.1.
AFAD officials warned residents not to return to damaged buildings because of the danger of further aftershocks. It said beds, blankets and tents were being sent to the area, where the overnight temperature was below 0 degrees Celsius.
Some 30 buildings had collapsed from the quake in the two provinces, according to Murat Kurum, the environment minister.
The earthquake could be felt as far afield as Syria, Iran and Lebanon – and is the latest in a long history of devastating tremors to strike the country on the eastern edge of Europe.
In August 1999, a 7.6 magnitude earthquake led to the deaths of more than 17,000 people in the western city of Izmit, while a 2011 quake saw 523 people die in the eastern city of Van.
A magnitude 6 earthquake killed 51 people in Elazig in 2010.