Russia refused to proceed with an exchange of prisoners unless Ukraine agreed to hand over a key witness in the 2014 downing of flight MH17, a senior Ukrainian official said.
Vladimir Tsemakh believed to be a former commander of Moscow-backed separatists in eastern Ukraine, arrived in Moscow on Saturday as part of a landmark prisoner exchange between the two ex-Soviet countries
He was reportedly in charge of air defence in the area of eastern Ukraine where the MH17 came down.
The Dutch government expressed regret that Ukraine had handed Tsemakh over, saying it had tried to prevent it.
"Tsemakh's absence from the exchange list automatically meant the cessation of talks with Russia," Ivan Bakanov, the head of Ukraine's SBU security service, told the Interfax-Ukraine news agency.
Bakanov described Moscow's insistence on his release as "proof of Russia's involvement in the MH17 crash".
He said the Ukrainian government had no "moral right" to put off the swap any longer.
"As a state, Ukraine is showing the world that it is saving its citizens like the world's strongest democracies," he said.
Ukrainian President Volodymyr Zelensky said on Saturday that Tsemakh had been questioned before being sent to Russia.
"We've done everything. Everything we've been asked to do. It was complicated. I was afraid that the exchange may fall through because of this," Zelensky said.
The 41-year-old Ukrainian leader appeared to praise the Kremlin for following through with the agreements.
"I must confirm that I, Ukrainian President Volodymyr Zelensky, and Russian President Vladimir Putin did everything we promised and did everything without changing our agreements in the process," he added.
The Dutch government said it had contacted Ukraine "several times and at the very highest level" in an effort to prevent Tsemakh's handover.
Foreign Minister Stef Blok said in a letter to parliament that Dutch authorities questioned Tsemakh before he left for Russia but the Netherlands still "deeply regretted" the swap.
Flight MH17 from Amsterdam to Kuala Lumpur was shot down by a Russian-made missile in July 2014 over eastern Ukraine, killing all 283 passengers and 15 crew on board, two-thirds of them Dutch.