Russia on Wednesday released Ukrainian pilot Nadezhda Savchenko as part of a swap for two Russian servicemen jailed in Ukraine, an official said.
Ms Savchenko was being flown to Kiev aboard Ukrainian president Petro Poroshenko's plane, according to the official in his administration.
Kremlin-funded television station RT, citing unidentified sources, reported that the two Russians also were released and were being flown to Moscow.
Ms Savchenko was certain to be greeted by crowds of supporters in Ukraine, where her refusal to bend after nearly two years in Russian custody has made her a national hero.
Mr Poroshenko was to meet her at the Kiev airport and accompany her into the city, the official said.
Ms Savchenko was captured by Russia-backed rebels in eastern Ukraine in 2014 and sentenced in March to 22 years in prison for her alleged role in the deaths of two Russian journalists in the conflict zone.
The two Russians, Alexander Alexandrov and Yevgeny Yerofeyev, were captured last year. They acknowledged being Russian officers, but the Russian Defence Ministry claimed they had resigned from active duty.
They were tried in a Kiev court, which sentenced them to 14 years in prison after finding them guilty of terrorism and waging war in eastern Ukraine.
Both of the Russians submitted a petition to Mr Poroshenko for a pardon, Mr Alexandrov's lawyer Valentin Rybin told the state news agency Tass on Wednesday morning. He said the same procedure was under way in Russia and indicated that the swap was in the works.
One of Ms Savchenko's lawyers, Mark Feygin, said Tuesday that he was trying to persuade Ms Savchenko to file a petition for pardon.
Another lawyer, Ilya Novikov, would not comment on Wednesday on whether Ms Savchenko has signed the pardon papers.