宋初扬州城是在“周小城”的基础上发展起来的。李重进镇守扬州时,在唐城的南半部加以改筑,城周十二里,叫“州城”,也是当下“大城”的前身。后因城损坏莫濛修筑,宋廷分别在乾道三年五月、翌四年八月、淳熙八年、绍兴三年等亦有修筑。
南渡后,因背后金兵威胁,扬州作为南宋前卫基地的重要性增强,建炎元年九月、二年十月,扬州吕颐好修缮城池。这次由知州郭棣修筑的城,北以柴河做城壕,运河为东缘和南缘,西以保障河为界,周长二千二百八十丈,约有十五里,被称为大城。
由于金兵屡屡来犯,郭棣认为唐代子城地势高,可以凭高临下,有利于防守,打击来犯之敌。于是在唐城旧址上重建城池,叫“堡寨城”,此城与宋大城南北对峙,中间相隔二里,这一段空白,容易使敌人将两城阻断,相互之间难以照应。于是又版筑一座可以连接这两座城的城,它的北门连着“堡寨城”的南门,它的南门直通宋大城,此为‘夹城’。
与其他城池一样,夹城东西南北各有翁城,其中西门是双瓮城的形式,正门前有月城,作为战略碉堡,以阻击敌军袭击。但城内除了粮草仓,练兵场,兵器库等备战设施外,只有两条联系东西南北的十字街作为军事通道。
后遭受到蒙古压迫的金于嘉定七年五月迁都于汴梁,由于宋室更加恐惧金或许会逼迫南方宋的版图,扬州事主管崔与之坚固扬州城防护,与之疏浚城壕,在门口开月河设吊桥,大城和堡城之间以前郭棣所造的土城连接此时改为砖筑,以加强防卫。
淳佑十年贾似道曾移镇两淮,以宋大城地处卑渫不易据守,因而在蜀岗上广陵故城遗址筑堡城,周一千七百丈,因在宝祐年筑,故称宝祐城。李庭芝镇守扬州后,因平山堂地高可下视城内,若元兵攻来则可在此构筑望楼俯瞰城中,又在“宝佑城”西加筑“圃城”,把平山堂包在内,称“平山堂城”,这样就又多了一个制高点,可防止元兵占据蜀冈向扬州城内射箭。
由此扬州一地有三城,即大城、夹城、宝祐城。三城的平面形状,因是两头大,中间细,形似蜂腰,故又称“蜂腰城”。在宋朝的守势策略中,城池是最重要的防守设施。宋朝的城防设施有不少的改进。改良城墙用料、拱券式城门、瓮城、双瓮城的城门形制和城中规划“十字街”的设计等。
虽然仍沿用土筑城墙,但是城池一些容易被攻入的部分,如城门、城墙转角等处,则已采用较坚固的砖块来修建,墙砖用白灰糯米汁黏合,临水一侧墙下密布木桩等措施借以增强都城的防御能力。李庭芝是扬州最后的守将,在朝廷降元后尚守孤垒抵抗十月之久。由此可知,三城连成的扬州的防御力是非常出色的。
扬州陷落后,同样难以逃脱蒙元的毁城运动,宝佑城、平山堂城、夹城都为元兵所毁,只剩下被战火侵食的大城。在赵昺收复江南之后,紧邻长江的扬州再次成为防御重点,而去年伯颜实施全面防御的战略后,扬州城池再次得到修缮。