It was the third and final phase of an exchange agreed during talks in Istanbul, where both sides pledged to release 1,000 prisoners each.
The prisoner exchange, which included civilians, has been the only concrete step towards peace to emerge from the meeting.
Despite continued violence, including a deadly missile attack on Kyiv just hours before, the handover went ahead.
Ukrainian President Volodymyr Zelenskyy confirmed the completion of the exchange, saying on X on Sunday that “303 Ukrainian defenders are home".