The law on the reintegration of the region was backed by 280 MPs, calling Russia an “aggressor” state.
Moscow condemned the move, saying it could only be considered as preparation “for a new war”.
More than 10,000 people have died in the eastern Donetsk and Luhansk region since the conflict began in April 2014.
A month earlier Russia seized Ukraine’s southern Crimea peninsula.
Ukraine’s lawmakers passed the law on Thursday after heated discussions in parliament that lasted three days.
“The Russian Federation is committing a crime of aggression against Ukraine and is temporarily occupying parts of its territory,” the document says.
It accuses Moscow of sending its armed units to the Donetsk and Luhansk regions, and not adhering to a ceasefire regime.
Ukraine and the West accuse Russia of sending its troops to the region and arming the separatists.
Moscow denies this, but admits that Russian “volunteers” are helping the rebels.
In a statement on Thursday, the Russian foreign ministry accused Kiev of trying to solve the conflict in the east by force.
It also said the new law violated the Minsk peace accords, which were agreed in 2015.
The rise in tensions between Kiev and Moscow comes just weeks after Ukraine and the separatists exchanged hundreds of prisoners – in one of the biggest swaps since the conflict erupted.