At least five people have been killed and dozens of others wounded after protesters stormed Kenya's parliament and set sections of it alight as lawmakers inside passed changes to raise taxes.
Protesters overwhelmed police and chased them away in an attempt to storm the parliament compound.
Flames could be seen coming from inside.
Police opened fire after tear gas and water cannon failed to disperse the crowds.
A Reuters journalist counted the bodies of at least five protesters outside parliament, while paramedic Vivian Achista told the news agency at least 10 people have been killed in the violence.
Several NGOs based in Kenya — including Kenya Medical Association and Amnesty Kenya — released a joint statement confirming 31 people had been injured.
Police eventually managed to drive the protesters from the building amid clouds of tear gas and the sound of gunfire. The politicians were evacuated through underground tunnels, local media reported.
Kenyan private broadcaster KTN News said on Tuesday that the east African nation's authorities have threatened to shut it down over its coverage of the protests.
Internet monitor Netblocks said internet services across the country also experienced severe disruptions during the police crackdown.
Ambassadors and high commissioners from countries including Britain, the US and Germany said in a joint statement they were deeply concerned by violence they had witnessed and called for restraint on all sides.
The protesters oppose tax rises in a country already reeling from a cost-of-living crisis, and many are also calling for President William Ruto to step down.
"We want to shut down parliament and every MP should go down and resign," one protester, Davis Tafari, trying to enter parliament, told Reuters.
"We will have a new government."
President Ruto won an election almost two years ago on a platform of championing Kenya's working poor, but has been caught between the competing demands of lenders such as the International Monetary Fund, which is urging the government to cut deficits to access more funding, and a hard-pressed population.
Kenyans have been struggling to cope with several economic shocks caused by the lingering impact of the COVID-19 pandemic, the war in Ukraine, two consecutive years of droughts and depreciation of the currency.
The finance bill aims to raise an additional $US2.7 billion ($4.67b) in taxes as part of an effort to lighten the heavy debt load, with interest payments alone consuming 37 per cent of annual revenue.
Parliament approved the finance bill, moving it through to a third reading by politicians.
The next step is for the legislation to be sent to the president for signing.
He can send it back to parliament if he has any objections.
The government has already made some concessions, promising to scrap proposed new taxes on bread, cooking oil, car ownership and financial transactions.
Opposition leader Raila Odinga called for the changes to be immediately and unconditionally withdrawn to make way for dialogue.
"I am disturbed at the murders, arrests, detentions and surveillance being perpetrated by police on boys and girls who are only seeking to be heard over taxation policies that are stealing both their present and future," he said in a statement.
Police did not respond to Reuters requests for comment.
Tuesday's protests began in a festival-like atmosphere but as crowds swelled, police fired tear gas in Nairobi's Central Business District and the poor neighbourhood of Kibera.
Protesters ducked for cover and threw stones at police lines.
Police also fired tear gas in Eldoret, the president's hometown in western Kenya, where crowds of protesters filled the streets and many businesses were closed for fear of violence.
Clashes also broke out in the coastal city of Mombasa and demonstrations took place in Kisumu, on Lake Victoria, and Garissa in eastern Kenya, where police blocked the main road to Somalia's port of Kismayu.
In Nairobi, people chanted "Ruto must go" and crowds sang in Swahili: "All can be possible without Ruto".
Music played from loudspeakers and protesters waved Kenyan flags and blew whistles in the few hours before the violence escalated.
Thousands had taken to the streets of Nairobi and several other cities during two days of protests last week as an online, youth-led movement gathered momentum.
On Sunday, President Ruto praised the protesters, saying they had been peaceful and that the government would engage with them on the way forward.
While protesters initially focused on the finance bill, their demands have broadened to demand his resignation.
The opposition declined to participate in the vote in parliament, shouting "reject, reject" when the house went through the items one by one.
The finance ministry says amendments would blow a 200 billion Kenyan shilling ($2.32b) hole in the 2024/25 budget, and compel the government to make spending cuts or raise taxes elsewhere.
Reuters