Ukrainian parliament spiralled out of control on Thursday as two MPs engaged in a punch-up before lawmakers voted to reinstate the independence of the country's key anti-corruption bodies.

Volodymyr Zelensky had sparked outrage after quietly signing a controversial bill that slashed the independence of two of the country's major anti-corruption watchdogs and was forced into an embarassing U-turn after widespread outcry against the move.

He backtracked on the bill and approved a new draft bill guaranteeing the freedom of anti-corruption agencies after facing nationwide protests for the first time since war with Russia erupted.

The new bill, to restore the independence of the National Anti-Corruption Bureau (Nabu) and Specialised Anti-Corruption Prosecutor's Office (Sap), was passed by 331 to 0 on Thursday in Kyiv's parliament.

But amid a tense atmosphere, two MPs could be seen exchanging punches.