1586年,萬曆寵愛的鄭貴妃生下兒子朱常洵 。由於萬曆對王恭妃和鄭貴妃的待遇不同,長達幾十年的" 國本之爭 "由此揭開了帷幕。
還在常洵出生以前,首輔申時行 就曾建議萬曆早立太子。但萬曆不願把自己不喜歡的女人生的兒子立為帝位的合法繼承人,便以皇長子年齡尚小為藉口推託過去。朱常洛5歲時,王恭妃還未受封,而朱常洵剛剛出生,鄭貴妃即被封為皇貴妃,這不能不令那些早就疑心重重的大臣們懷疑萬曆要廢長立幼。他們不願因對此事讓步而被記入史冊,讓後世覺得朝中無忠君愛國之人。
自從冊封鄭貴妃為皇貴妃引起群臣幾乎一致的反對開始,萬曆和大臣們在立皇儲問題上就一直爭吵不休、僵持不下。
此時萬曆的生母慈聖太后在這個問題上,站到王恭妃和群臣一邊,覺得已經到了她應親自出面幹涉的時候了。
當萬曆來到她的深宮請安時,這位老太后面色嚴肅地問道:「為何遲遲不立常洛為太子?」 可能是慈聖太后威風猶在的緣故,也可能是萬曆事先沒有準備而過於慌張,竟脫口說了一句關鍵性的錯話:「彼都人子也。」
明時宮內稱宮女為「都人」,萬曆居然忘記了母親也是「都人」出身。當慈聖太后怒氣衝衝地指著他說:「爾亦都人子」時,萬曆才幡然醒悟,驚恐得「伏地不敢起」了。
萬曆的失誤,加劇了慈聖太后的決心。無奈之下,萬曆皇帝只得在1601年十月立朱常洛為「皇太子」。
鄭貴妃聽到萬曆要立朱常洛為太子的消息,雖然感到大勢已去,她還是要作最後一搏。
早在幾年前,萬曆皇帝為討鄭貴妃的歡心,曾許願將來封自己的兒子朱常洵為太子。鄭貴妃施展聰明,讓皇帝寫下手諭,珍重地裝在錦匣裡,放在自己宮中的梁上,以為日後憑據。既然現在時機已到,她就不能不出示這張王牌以制其敵了。可是,當鄭貴妃滿懷希望地打開錦匣時,不禁大吃一驚:一紙手諭讓衣魚(蠹蟲)咬得殘破不堪,「常洵」二字也進了衣魚腹中、
迷信的萬曆皇帝長嘆一聲:「此乃天意也。」終於不顧鄭貴妃的淚眼,而把朱常洛封為「太子」,常洵封為「福王」,封地洛陽。