商君是衛國國君姬妾所生的公子,名鞅,姓公孫。公孫鞅從少年時代就喜歡刑名之類的學問,並侍奉魏國的宰相公叔痤(cuó),擔任著中庶子一職。公叔痤知道公孫鞅才華過人,原本想推薦給魏惠王,不料公叔痤突然病倒了。魏惠王前去探望公叔痤的病情,並且問他:“公叔的病萬一不能痊愈,我將把國家委托給誰料理?”公叔痤說:“中庶子公孫鞅雖然年少,但有出眾的賢才,大王可以把國家委托給他料理。”魏惠王聽了默然不語。魏惠王將要離去時,公叔痤讓旁人退下,又對魏惠王說:“大王如果不任用公孫鞅,就一定得把他殺掉,不然,若他被別的國家重用,會對魏國帶來危害。”魏惠王答應了。魏惠王離去後,公叔痤召見了公孫鞅,抱歉地對他說:“剛才大王問我誰是將來能夠擔任宰相的人,我推薦了你。但當我推薦你時,大王沒有同意,我便又對他說,如果不任用你,就應該把你殺掉。大王答應了我。你現在得趕緊逃走,不然會擒獲。”公孫鞅卻說:“大王既然不聽您的話重用我,又怎麼能聽您的話來殺我呢?”商鞅沒有離開魏國。
公叔痤死後,公孫鞅聽說秦孝公下令在全國範圍內招賢,準備重振霸業,收複失地,便去了秦國。經秦孝公寵臣景監的幫助,見到了秦孝公。公孫鞅與秦孝公談了很久,可秦孝公不時打瞌睡。事後,秦孝公責備景監說:“您推薦的人非常狂妄,不值得任用。”景監便責怪公孫鞅。公孫鞅說:“我給孝公講了黃帝、顓頊、帝嚳、唐堯、虞舜五帝的治國之道,但他的思想好像難以啟發。”五天後,秦孝公第二次召見了公孫鞅,公孫鞅談得更多,可仍然不符合秦孝公的心意。秦孝公因此又責備了景監,景監則又責怪了公孫鞅。公孫鞅說:“我給孝公講了伏羲、神農氏和黃帝三皇的求富之道,但他仍然不想采納。我請求他再次召見我。”第三次召見結束後,秦孝公對景監說:“您推薦的人還不錯,我願意與他交談了。”公孫鞅則對景監說:“如果孝公再召見我,我也已經知道該說些什麼了。”於是,秦孝公又召見了公孫鞅,與他交談了很久。秦孝公聽著聽著,聽得入了迷,不知不覺地把膝蓋移到了座席的前頭,交談了幾天都沒有感到厭倦。景監問公孫鞅:“您究竟憑什麼讓我們的國君如此入迷呢?”公孫鞅回答:“我給孝公講了如何富國強兵的辦法,孝公最願意聽了。”
秦孝公已經任用公孫鞅為左庶長,負責變法之事,同時又擔心天下人議論自己。公孫鞅說:“對於一個國君來說,行動猶豫不決,就不會成事。聖人隻要能夠使國家富強,就不必效法舊的法規;隻要有利於人民,就不必遵循舊的禮製。”有大臣持不同意見,說:“聖人應該在不改變民俗的前提下來教化人民,聰明的人應該在不變更法規的基礎上治理國家。”公孫鞅反駁道:“一般人習慣了舊習俗,學者們也往往沉湎於自己的見聞。這兩種人做官守法是可以的,但無法與他們談論常法以外的事物。聰明的人製訂法度,愚笨的人才被法度製約;賢能的人更改禮製,平庸的人才受禮製束縛。”又有大臣持不同意見,說:“倘若沒有百倍的利益,就不應該隨便變革法度;倘若沒有十倍的功效,就不應該改換器物。”公孫鞅反駁道:“治理天下並非隻有一種方法,為了富國強兵,就不能死抱住某一種方法不放。商湯、周武王不效法古製,成就了事業;夏桀、商紂不改革禮製,因此滅亡。因此可以說,反對古製的人無可非議,遵循舊禮的人更不值得稱讚!”秦孝公聽完,讚賞公孫鞅說:“你說得對!”
公孫鞅很快發布了他的變革法度的命令。所公布的新法,其主要內容有:
十家為“什”,五家為“伍”,一家有罪,九家檢舉,否則都受牽連。私藏犯人的,處以腰斬的刑罰;告發犯人的,與殺掉敵人一樣獎賞;家裏有兩個成年男子的必須分居,否則加倍收取賦稅;在軍隊立功時,按照功勞大小封賞官爵;如果沒有軍功,皇親國戚同樣不能列入貴族名單之中。立功多的,不僅爵位提升,還可以坐華美的車子、穿華美的衣服;沒有立功的,即使有錢,仍然隻能穿褐色粗布衣服;因私鬥毆的,按情節輕重予以處罰;鼓勵農民男耕女織,獲得豐產的,可以免去一家人的徭役或賦稅。