The Ukrainian parliament has voted overwhelmingly to annul controversial anti-protest legislation.
The decision comes less than two weeks after the measures were introduced.
The law, which banned the wearing of helmets by protesters and the blockading of public buildings, had helped fuel continuing anti-government demonstrations.
In another move to appease the protesters, Ukraine's Prime Minister Mykola Azarov has offered to quit.
In a statement, he said the offer of his resignation to President Viktor Yanukovych was intended to create "social and political compromise".
Parliament - holding an emergency debate on the crisis - voted by 361 to 2 to repeal the protest law.
President Yanukovych had already agreed to scrap the legislation in a concession to the opposition.
But up until the vote, it was unclear how MPs from his governing Party of the Regions would cast their ballots as they were allowed a "free vote" - to vote as they saw fit.
Aside from the ban on helmets and blockades, the legislation had outlawed unauthorised tents in public areas and the slandering of government officials.
MPs applauded as the result was announced.
There was a similar response in Kiev's Independence Square - the focus of the demonstrations.
A BBC correspondent who went to the square described it as relatively quiet with no sign of the recent violence which has affected parts of central Kiev.
Activists were chatting with police and listening to the progress of the debate in parliament.
The protests have spread in recent days across Ukraine, even to President Yanukovych's stronghold in the east. Official buildings in several cities have been occupied.
The interior ministry says protesters stabbed and wounded three policemen in the southern city of Kherson, one of whom later died.
At least five people have been killed in violence linked to the protests.
In his resignation statement, Prime Minister Azarov said: "To create additional opportunities for social and political compromise and for a peaceful solution to the conflict, I made a personal decision to ask the president of Ukraine to accept my resignation as prime minister of Ukraine."
The government had "done everything to ensure the peaceful resolution of the conflict" and would do "everything possible to prevent bloodshed, an escalation of violence, and violation of citizen's rights", he said.
If the president signs the decree for the resignation, then the whole cabinet resigns, says the BBC's David Stern in Kiev. But they can remain in their posts for 60 days until a new government is formed.
President Yanukovych had already offered Mr Azarov's job to the opposition at the weekend, proposing that Fatherland leader Arseniy Yatsenyuk take the post. Mr Yatsenyuk declined the offer.
Parliament adjourned after the vote on the protest law and is due to discuss the issue of granting an amnesty to convicted protesters on Tuesday afternoon.
Mr Yanukovych offered an amnesty only if protesters cleared barricades and stopped attacking government buildings.
The president made the concessions during talks on Monday with Mr Yatsenyuk, Udar (Punch) chief Vitali Klitschko, and nationalist leader Oleg Tyahnybok.
Meanwhile, top EU diplomat Catherine Ashton has brought forward a planned visit to Ukraine by 48 hours and will now arrive on Tuesday for meetings with Mr Yanukovych and opposition leaders.
She said she was "alarmed" by reports on Monday that the government was preparing to introduce a state of emergency. Officials have denied any such plan.
Ms Ashton arrives from Brussels where she, with other senior EU leaders, will have met Russian President Vladimir Putin at an EU-Russia summit.
Differences over Ukraine were expected to be high on the agenda.
The crisis in Ukraine was sparked when Mr Yanukovych pulled out of a planned trade deal with the EU last November in favour of a $15bn (£9bn) bailout from Russia.