明清时设置顺天府管辖首都地区,地位与今日的北京市类似,但管辖面积不同。
民国初年北洋政府仍定都北京,1913年改顺天府为京兆地方,范围规格与顺天府大致相同,直隶于中央。1928年6月,北伐军攻入北京,乃废除京兆地方建制,改北京为北平,初设北平特别市,直隶南京国民政府,后改称北平市,隶属于行政院。日据时期成立北京市政府,日本战败投降后恢复原北平市建制。北平市所辖范围较之前顺天府、京兆地方及今日北京市为小,大致包括今西城区、东城区全境,朝阳区大部、海淀区南半部、石景山区南部和丰台区北半部。
1949年1月,在原国民党时期20个区的基础上临时划定32个区,4月将32个区合并为26个区,6月接管任务完成后调整为20个区。
1952年,北京市由华北行政委员会领导。7月,将河北省宛平县全部及房山、良乡2县部分地区划归北京市。1956年3月9日,撤销昌平县,将昌平县所属行政区域(高丽营镇除外)划归北京市,并命名为昌平区。将河北省通县所属的金盏、长店、北皋、孙河、崔各庄、上新堡、前苇沟等7个乡归北京市。
1958年3月,河北省通县专区所属通县、顺义、大兴、良乡、房山等5县及通州市划入北京市。其后撤销西单、西四两区,合并设立西城区;撤销东单、东四二区,合并设立东城区;撤销前门区,并入崇文、宣武二区;东郊区改名为朝阳区;撤销石景山区,分别划归丰台区、海淀区和门头沟区;京西矿区改名为门头沟区;撤销通县和通州市,合并设立通州区;撤销良乡、房山二区,合并设立周口店区;撤销大兴县,改为大兴区;撤销南苑区,划归朝阳区、丰台区和大兴区;撤销顺义县,改为顺义区。
1958年10月,河北省所属怀柔、密云、平谷、延庆4县划入北京市。
1960年1月7日,撤销昌平区,恢复昌平县;撤销顺义区,恢复顺义县;撤销通州区,恢复通县;撤销大兴区,恢复大兴县;撤销周口店区,恢复房山县。至1960年底,北京市下辖东城、西城、宣武、崇文、海淀、朝阳、丰台、门头沟等8区和昌平、延庆、怀柔、密云、顺义、平谷、通县、大兴、房山等9县。
1967年8月7日,撤销石景山办事处,设立石景山区。1980年10月20日,设立燕山区。
1986年11月11日,撤销房山县、燕山区,设立房山区。以原房山县和燕山区的行政区域为房山区的行政区域。
2010年7月1日,国务院正式批复北京市政府关于调整首都功能核心区行政区划的请示,同意撤销北京市原东城区、崇文区,设立新的北京市东城区;撤销北京市原西城区、宣武区,设立新的北京市西城区。