Maybe there should be a devastation mechanic like Stellaris. After pounding a city for awhile the city graphical style converts to a ruined graphical style. During this phase the city is now "devastated" and incurs increased unhealthiness, disease, crime, unhappiness, instability, lower production, lower food, lower commerce, lower wealth, and lower culture. It also cripples the city defense by eliminating places for snipers to fire down from, therefore it creates negative defense.
In essence the city should then easily favor the attacker over the defender, or the attacker can simply wait and the city will revolt just like the Paris Commune at the end of the Franco Prussian War. With options like "realistic siege" or "zones of control" the city can only be entered if it has been induced into this devastation phase.
After awhile if not further bombarded the devastation disappears and the city graphics changes back to normal looking architecture, the penalties therein removed. Though devastation should last for some time even after the city has been captured to make occupation difficult for the conqueror as well as to slow down conquest from snowballing.