河西之地對於秦國來說,是通向中原的戰略要地。秦孝公繼位後,將收複河西當做主要目標。
秦國自任用公孫鞅變法後,國力大增,公元前352年,趁著魏國桂陵之戰大敗,秦孝公覺得是時候報河西之戰的仇了,於是派兵渡過黃河,攻占了魏國舊都安邑,次年又由公孫鞅帶隊打下了固陽。魏惠王與各國停戰後,迅速調集軍隊反擊,秦國士兵不是魏武卒的對手,接連敗退,秦孝公不得已和魏惠王講和,歸還了占領的城池。
從這裡能看出來,此時的魏國軍事實力仍就強大,不過已經是強弩之末了。
公元前341年,趁魏國遭受馬陵之戰的重創,秦孝公派公孫鞅帶隊攻打魏國西河郡,魏國由公子卬迎戰。公孫鞅在魏國時和公子卬是好朋友,他派使者送信給公子卬,說:“阿卬呀,你還記得那年我們在夕陽下的奔跑嗎?那是我們逝去的青春。我們以前在一起玩得多好呀,可是現在卻成了敵人,我不忍心和你自相殘殺。要不你來我這,咱倆好好喝一杯,再簽個友好協議,大家就各回各家。”
這個明顯的圈套,公子卬還是上當了,就帶了幾個隨身保鏢,去找公孫鞅敘舊。等到了秦國軍營,還沒坐下喝酒呢,公孫鞅翻臉不認人,直接綁了公子卬,隨即對魏軍發動攻擊。魏軍主帥被俘,士兵們潰敗逃散。這時候魏國不再牛氣了,魏惠王很懊悔,當初為什麼沒有聽公叔痤的話殺了公孫鞅,現在隻好割讓河西部分土地和秦國講和。
公孫鞅因為戰功被封於商地,號商君,以後大家就叫他商鞅了。秦孝公病重的時候把商鞅叫來,準備將君位傳給商鞅,這個做法有點像劉備。商鞅是個明白人,推辭了秦孝公的好意,並發誓要為秦國大業鞠躬儘瘁。秦孝公這才滿意得閉上了雙眼,咽氣了。太子駟即位,秦惠文王,這個王也是後來自封的。
商鞅變法觸動了太多貴族的利益,之前變法的時候又得罪過太子駟,在大靠山秦孝公死後,被商鞅處罰過的公子虔等人,往商鞅身上扣了個謀反的罪名。商鞅的權勢地位太強,都說功高蓋主,秦惠文王也有意除掉商鞅,就下令逮捕了他。商鞅知道後趕緊跑路,逃到了邊關。
晚上商鞅想到賓館開個房間休息一下,前台不認識他,不知道他就是被緝捕的逃犯,還說:“住宿旅店請出示身份證。”商鞅不敢暴露身份,自然拿不出憑證,想讓前台行個方便,前台說:“不行啊,根據商鞅法令規定,留宿沒有身份證的人是要被治罪的。”商鞅欲哭無淚,自己的立法還真有效果。