Six police officers and at least 21 civilians were killed, the sources said, as hundreds took to the streets in frustration at economic hardship and a perceived failure by the government to cushion the impact of rising prices.
The unrest is highly unusual for Sierra Leone, especially in the West African country's capital Freetown. A few people have been killed in isolated protests in other cities in recent years.
One video verified by Reuters from Freetown showed a police officer firing a gun into a crowd.
Sulaiman Turay, a 19-year-old living in east Freetown, marched briefly before police started firing teargas and said he later he saw demonstrators getting shot at from his porch.
"I think people are shocked. It's not the country we know. Sierra Leone is a peaceful place," he told Reuters.
President Julius Maada Bio said the circumstances surrounding Wednesday's events would be "fully investigated".
Other verified images from Freetown showed clouds of smoke and teargas as large crowds threw rocks and burned tyres and armed officers patrolled the streets.
The protests were concentrated in the opposition's northern heartland and the capital.
Long held in check, citizens' frustrations have been exacerbated by rising prices for basic goods in a country where, according to the World Bank, more than half the population of around 8 million live below the poverty line.
Wednesday's death toll included two police officers killed in Freetown, three in the northern town of Kamakwie and one in the northern city of Makeni, police inspector general William Fayia Sellu told Reuters.
At least 13 civilians were shot dead in Freetown, said staff at the city's main mortuary. Hospital sources said that four civilians were killed in Kamakwie and another four in Makeni.
An eerie calm had returned to Freetown on Thursday, residents said, as stores were closed and people stayed in out of fear of unrest.
The internet was cut for two hours on Wednesday and again overnight, according to internet observatory NetBlocks.
Police said a curfew would remain in effect from 7 p.m. to 7 a.m. local time from Thursday after the government imposed a 3 p.m. curfew on Wednesday in a bid to stem the violence.