The plane carrying 16 people was making an emergency landing when it overshot a runway and crashed into a house.
The plane was carrying meat from Bishkek in Kyrgyzstan when it crashed near the capital Tehran, army spokesman Amir Taghikhani told state television.
He said 16 people were on board - 14 military personnel and two civilians.
The sole survivor, a flight engineer, was injured but survived and was taken to hospital for treatment, he added.
Images showed crowds gathering at the crash site and some people in tears near the charred remains of the plane, its nose smashed into the wall of a house.
The decades-old Iranian Boeing 707 was making an emergency landing at Fath Airport - an airfield controlled by Iran's Revolutionary Guard - when it skidded off the runway and crashed through a fence into a residential area at 8.30am local time.
The aircraft was meant to land at the nearby Payam International Airport, situated about 25 miles west of the Iranian capital.
In November, a commercial airline reportedly mistook Fath for Payam, but was able to abort its landing.
Iran's state-run IRNA news agency quoted an aviation official saying Monday's flight also mistook Fath for Payam.
It is not known why the crew made the emergency landing and an investigation has been launched to find out what happened.