Chaos has erupted in the Ukrainian parliament during a debate over the extension of the lease on a Russian naval base in Ukraine.
The chamber's speaker had to be shielded by umbrellas as he was pelted with eggs, while smoke bombs exploded and politicians brawled.
But the debate continued and the chamber ratified the lease extension.
Kiev has prolonged the lease on the Sevastopol base by 25 years in return for cheaper supplies of Russian gas.
The deal, which came amid rapidly improving ties between Russia and Ukraine following the election of Ukraine's pro-Russian President Viktor Yanukovych in February, has been bitterly opposed by Ukrainian pro-Western opposition politicians.
The clashes in parliament broke out as MPs debated ratification of the agreement, which was made by Mr Yanukovych and Russian President Dmitry Medvedev last month.
Opposition MPs hurled eggs at the speaker, Volodymyr Lytvyn, who had to be protected by two aides holding black umbrellas.
Deputies were seen throwing punches on the floor of the chamber, and covering their faces with handkerchiefs to protect themselves from the smoke.
Thousands of demonstrators gathered outside the building.
Despite the chaotic scenes, the debate continued and the deal was backed by 236 out of 450 members of the chamber.
Ukraine's Prime Minister Mykola Azarov pointed to the boost the lower gas price would provide to the budget as the country struggles to secure a loan from the International Monetary Fund (IMF).
"The budget means agreement with the IMF, the possibility of getting investments," he said. "It is a programme of development for Ukraine in the future."
But opposition leader and former prime minister Yulia Tymoshenko said the day would "go down as a black page in the history of Ukraine and the Ukrainian parliament".
The Russian lower house of parliament approved the fleet extension deal shortly after the Ukrainian ratification, with 410 members voting in favour and none against.
On Monday, Russian Prime Minister Vladimir Putin visited Kiev, where he announced offers for wide ranging co-operation on aircraft manufacturing, shipbuilding and the generation of nuclear power.
"We are talking about creating a large holding which would bring together joint power generation, joint power station construction and the fuel cycle," he was quoted as saying.
He said the controversy over the base deal was "to be honest, unexpected".
The price Ukraine had asked was "beyond all reasonable limits", he said, and the gas subsidies would cost Russia $40-45bn (30-34bn euros, £26-29bn) over 10 years.
But he added that the deal was "not just a question of money".
"Military co-operation, without a doubt, increases trust between two countries, gives us an opportunity to do work full of trust in the economic and social and political spheres," he said.
"This is in fact the main thing."
One of the protesters outside parliament, Igor Derevyanko, accused Russia of "financing anti-Ukrainian projects".
"This is a permanent threat to Ukraine's territorial integrity because the Black Sea fleet is the outpost of the Russian state in Ukraine," he was quoted as saying by the Associated Press news agency.