Violence erupted when the protesters demanded that MPs pass a law to recognise a World War Two nationalist group which opposed Soviet forces.
Fifteen policemen were injured and at least 50 protesters had been arrested, the Ukrainian interior ministry said.
Meanwhile, shelling in east Ukraine reportedly killed seven people.
Seventeen people were also injured when shells hit a funeral in the village of Sartana, near the disputed port city of Mariupol in Donetsk region, local officials said.
Pro-Russian separatist forces are active near Mariupol, which is under government control.
A fragile ceasefire has been in place since early September between government forces and the separatists, who control large parts of the Donetsk and Luhansk regions.
MPs did not vote to recognise the wartime Ukrainian Insurgent Army (UPA).
Most of the crowd has now dispersed.
Police used batons in the clashes and linked arms to protect the parliament.
At least one petrol bomb was thrown at the parliament building in the unrest and there are unconfirmed reports that some bullets were fired.
Reporting the injuries and arrests, interior ministry adviser Anton Herashchenko wrote on Facebook that "the clashes at the Supreme Rada [parliament] have just ended" and "the police used a degree of force allowed by law".
Among the many Ukrainian flags in the crowd there were also flags of the far-right Svoboda and Right Sector groups.
Both groups later denied that their supporters had been involved in the violence.
UPA members fought for Ukrainian independence in the war, but recognising their role is highly controversial, the BBC's David Stern reports from Kiev.
At times they were allied with the Nazis and are said to have carried out atrocities against civilians.
In Kharkiv, Ukraine's largely Russian-speaking second city, nationalists held a torch-lit rally on the main square on Tuesday evening, under far-right banners.
The event was meant to commemorate Ukrainian soldiers killed fighting the rebels in the east.
Tensions are mounting in Ukraine ahead of elections scheduled for 26 October.
There are some doubts whether Svoboda will pass the 5% threshold necessary to get parliamentary seats.
Source: BBC News Europe