Besieging Sudanese forces pounded El-Fasher on Saturday, witnesses said, killing 22 people in Darfur's last city outside their control, according to a hospital source.
El-Fasher has become a key battleground in the 15-month-long war pitting the Rapid Support Forces (RSF) against the regular army.
The battle for the North Darfur state capital, seen as crucial for humanitarian aid in a region on the brink of famine, has raged for more than two months.
Witnesses said El-Fasher had come under heavy artillery bombardment by the RSF on Saturday, according to AFP.
"Some houses were destroyed by the shelling," one witness said.
It was the deadliest reported bombardment since the start of the month, when 15 civilians were killed in the shelling of another city market.
Intense fighting for El-Fasher erupted on May 10, prompting a siege by the RSF that has trapped hundreds of thousands of civilians.
Last month, the UN Security Council passed a resolution demanding an end to the siege.
US mediators are to make a new attempt in Switzerland next month to broker an end to the fighting. The talks are due to open on August 14.