明太祖朱元璋起兵之初,南下至定远(安徽今县)妙山时,当地土豪冯国用就建议:金陵龙蟠虎踞,为帝王之都,应该“先拔之以为根本”。后渡江攻克太平(今安徽当涂县),归降的元太平路路学教授陶安也建议:“金陵古帝王之都,龙盘虎踞,限以长江之险。若取而有之,据其形胜,出兵以临四方,则何向不克?”朱元璋采纳了他们的建议,于元顺帝至正十六年(1356年)三月攻取江宁,改集庆路为应天府。洪武元年(1368年),朱元璋称帝,建国号为“明”,以应天为南京。于是,南京成了明朝第一个都城。
南京虽说是“龙蟠虎踞”、“六朝故都”,但在此定都的全是偏安政权,大一统帝国没有一个以南京为都城。况且,南京虽是江南财赋之会,长期以来却有“六朝金粉”之称,风俗奢糜。所以明太祖建国时只将其称为“南京”,而以北宋旧都开封为“北京”,另以自己的故乡临濠为“中都”。直到洪武十一年,才将南京改称“京师”,算是定都了。但人们总是心存疑虑。正如后来郑晓所说:“国朝定鼎金陵,本兴王之地,然江南形势,终不能控制西北。”其实早在洪武时,御史胡子祺就曾经上过一个很有影响的奏疏,疏中历数了可以定都的地点,认为最佳莫过于关中。明太祖也于洪武二十四年命太子朱标往关中地区“巡抚”,实是考察在西安定都的可能性。御史中丞刘基则以政治家的气魄明确表示:北平虽然是辽、金、元诸“胡”之都,但作为京城,实有不可替代的优势。
明成祖通过“靖难”夺取了皇位,在建元“永乐”的当年,便仿南京“应天”府之例,将自己的“龙兴”之地北平府改为“顺天”府,称“北京”,并将直隶苏州等十府及浙江等九省的大批富民迁往北京。至永乐十八年九月,诏告天下,以北京为京师,改京师为南京。经过洪熙、宣德时期的酝酿和争论,最终在英宗正统六年十一月正式定都北京,以南京为“留都”,设立与北京相对应的中央各衙门,确立了南北两京制度。于是,北京和南京均为明朝的“都城”。
丘浚在分析南北二京并立的理由时说:“天下财赋,出于东南,而金陵为其会;戎马盛于西北,而金台为其枢。并建两京,所以宅中图治,足食足兵,据形势之要,而为四方之极者矣。”
丘浚的这番分析,不免有事后诸葛之嫌。明朝两京并立,未必就达到了足食足兵;清朝只以北京为京师,也未必就缺食少兵。明成祖迁都北京,更多考虑的是控制北方,当然也和当时最高统治者在所谓南北之争中站在北人的立场有关。而迁都、定都之后仍将南京作为留都,固然是为了控制东南财赋,更为重要的则是尊重明太祖在南京定都的“祖制”。 但是,不管两京并立出于何种动机,客观上都起到了繁荣南京、发展北京的作用。
北京的所在地是顺天府,顺天府同时也是北直隶的首府;南京的所在地是应天府,应天府则是南直隶的首府。这两个府在明朝叫“京府”。顺天府所在地为大兴、宛平二县,应天府所在地为上元、江宁二县,所以大兴、宛平、上元、江宁四县在明朝又叫“京县”。这样,两府四县的府城、县城其实就在京城。
此外,凤阳仍为“中都”;明世宗由湖广安陆州的兴王府入继大统,故仿应天、顺天之例,升安陆州为“承天”府,嘉靖十八年称“兴都”。这两个城市的政治地位自然不是一般的府城可比,但虽然设有“留守司”,却并无中央的相应机关,所以仍是府城的规模。