1990年末,全市辖12个市辖区、9个县。
从1989年开始,上海的行政区划进行了多次重大调整。最早开始的是区、县合并。
1992年7月,上海县的龙华乡及虹桥乡的3个村并入徐汇区,新径乡及虹桥乡的两个村并入长宁区;嘉定县的长征乡和桃浦乡并入普陀区;宝山区的彭浦乡并入闸北区。
1992年10月,设立浦东新区,管辖范围是原杨浦、黄浦、南市3区的浦东部份,原川沙县的全部及上海县的三林地区。上海县及闵行区合并,成立新的闵行区,区政府也从原闵行地区迁至原上海县政府所在地莘庄。
1992年,嘉定撤县设区;1997年,撤消金山县,与原石化地区合并成立新的金山区;1998年,松江县撤县设区;1999年,青浦县撤县设区;2001年,南汇、奉贤两县同时撤县设区。
2000年,黄浦区和南市区的合并。
2009年,南汇区并入浦东新区。
2011年,卢湾区与黄浦区合并,形成新黄浦区。
2014年,静安区与闸北区的“撤二建一”,形成新静安区。
2016年,崇明撤县设区 崇明撤县设区后,上海共辖黄浦、徐汇、长宁、静安、普陀、虹口、杨浦、闵行、宝山、嘉定、浦东新、松江、金山、青浦、奉贤、崇明16个区,进入“无县”时代。