公元前359年,正当商鞅辅佐秦孝公酝酿变法时,旧贵族代表甘龙、杜挚起来反对变法。他们认为“利不百不变法,功不十不易器。”“法古无过,循礼无邪。”商鞅针锋相对地指出:“前世不同教,何古之法?帝王不相复,何礼之循?”“治世不一道,便国不法古,故汤武不循礼而王,夏殷不易礼而亡。反古者不可非,而循礼者不足多。”从而主张“当时而立法,因事而制礼”(《商君书·更法篇》《史记·商君列传》)。这是以历史进化的思想驳斥了旧贵族所谓“法古”“循礼”的复古主张,为实行变法作了舆论准备。
实行变法
周显王十三年(前356年)和十九年(前350年)先后两次实行变法,变法内容为“废井田、开阡陌,实行郡县制,奖励耕织和战斗,实行连坐之法”。这时太子犯法,商鞅曰:“法之不行,自上犯之。”,刑其太傅公子虔与老师公孙贾。秦孝公十六年(公元前346年),太傅公子虔复犯法,商鞅施以割鼻之刑。变法日久,秦民大悦。秦国道不拾遗,山无盗贼。前340年,率秦赵军败魏国公子昂将军,魏割河西之地与秦,将人民迁居至大梁,此时魏惠王大忿:“寡人恨不用公叔痤之言也。”卫鞅因功封于商十五邑。