Malaysian Airlines Flight MH17 crashed as a result of a Russian-made Buk missile, the Dutch Safety Board says.
The missile hit the front left of the plane causing other parts to break off, it said in a final report into the July 2014 disaster, which killed 298 people.
The West and Ukraine say Russian-backed rebels brought down the Boeing 777, but Russia blames Ukrainian forces.
The report does not say who fired the missile, but says airspace over eastern Ukraine should have been closed.
The plane - flying from Amsterdam to Kuala Lumpur - crashed at the height of the conflict between government troops and pro-Russian separatists.
Most of the victims were Dutch - 196, including some with dual nationality. The other passengers and crew were nationals from 10 countries.
How the findings were presented
A separate Dutch-led criminal investigation is under way.
The report says the three crew members in the cockpit were killed by the missile explosion instantly.
However, it adds, it was unclear at which point the others died, and the possibility of some remaining conscious for some time during the one-and-a-half minutes it took for the plane to go down could not be ruled out.
Presenting its findings at the Gilze-Rijen military base in the Netherlands, the safety board showed plane parts that had been brought back from the rebel-held Donetsk region and reconstructed.
Board president Djibbe Joustra said the impact pattern could not have been caused by a meteor, an air-to-air missile or an internal explosion.
Instead, he said, a warhead carried by a surface-to-air missile had detonated above the left-hand side of the cockpit, causing structural damage.
Mr Joustra said the missile was a Buk - which experts say both Russian and Ukrainian armies possess.
He added that paint had been found on metal fragments within the plane that matched with missile fragments on the ground.
Mr Joustra also said there had been sufficient reason to close off Ukrainian airspace but Ukraine did not do that - and on the day of the crash, 160 flights flew over the area in question.
Key findings - Dutch Safety Board report in a nutshell
Malaysia plane crash: What we know - How flight MH17 unfolded
A reporter's story - Searching for truth at the crash site
Remembering the victims - Shared sadness and sunflowers
The board does not have the authority to apportion blame, under the rules governing international crash investigations.
But speaking to reporters after the news conference, Mr Joustra said pro-Russian rebels were in charge of the area from where the missile that hit MH17 had been fired.
The government in Ukraine and several Western officials have said the missile was brought from Russia into the rebel-held part of Ukraine.
The Dutch-led criminal investigation has already published photos of the launcher being transported around rebel areas.
In the report, the Dutch Safety Board says the weapon used was a 9N314M-model warhead carried on the 9M38M1 missile, as installed on the Buk surface-to-air missile system.
It adds that the type of fragments found in the wreckage and bodies of crew members in the cockpit were bow-tie or cube shaped - only found in the 9N314M warhead.
However, the Russian side disputed the Dutch findings insisting that only older warheads and missiles of the 9M38 type still in the hands of the Ukrainian army could have been used as they were the only weapons with "butterfly or bow-tie" fragments. The Russian army had phased them out.
"The 9M38M1 missile has no H-shaped striking elements," Yan Novikov, the head of Buk missile company Almaz-Antey said.
In their submission to the Dutch report, the Russian experts argue that investigators should not have discounted other potential reasons for plane's destruction, such as an air-to-air rocket. This is completely rejected by the Dutch Safety Board.
Dutch Prosecutor Fred Westerbeke on Tuesday said a number of "persons of interest" had been identified, but there was still much to be done and the inquiry would not be finished this year.
In official reaction on Tuesday:
Using their own simulation, the officials said the missile had been fired from Zaroshchenke in Ukrainian-controlled territory, some 20km (12 miles) away from the area highlighted by the Dutch report.
They argued the missile used was a decades-old model no longer used by Russian forces.
In July, Russia vetoed a draft resolution at the UN Security Council to set up an international tribunal into the MH17 air disaster.
President Vladimir Putin said at the time that such a tribunal would be "premature" and "counterproductive".
JUSTCLICK & CONNECT