Ukraine's government received 76 captives, with the pro-Russian separatists reportedly taking 124.
Russian and Ukrainian authorities agreed to the swap - which is aimed at improving ties - at talks in December.
Relations between the two countries deteriorated in 2014, when Russia annexed Ukraine's Crimean peninsula.
Russian-backed rebels then began an insurgency in the Donetsk and Luhansk regions of eastern Ukraine. More than 13,000 people have been killed in the conflict.
This is the second prisoner exchange involving Russia and Ukraine. In September, 24 sailors seized by Russia in the Kerch Strait off Crimea in November 2018 were released and - controversially - a "person of interest" over the downing of flight MH17 which killed 298 people was handed to Russia.
Sunday's swap took place at a check point near the industrial town of Horlivka in the Donetsk region.
"The mutual release of the detainees has ended," the official Twitter account of the Ukrainian president said on Sunday.
The pro-rebel Luhansk Information Centre quoted a local official saying the exchange had been completed and that nine people would remain in mainland Ukraine after refusing to take part in the swap.
Ukrainian activists opposed to the swap blockaded the exit to the prison in the capital Kyiv where some of the pro-Russian prisoners were being held.
They objected to the release of former members of the Berkut - the Ukrainian riot police accused of killing 48 people during pro-democracy demonstrations in February 2014.
In a statement on Saturday, Ukraine's prosecutor-general's office said that defendants facing trial would still have to appear in court.