公元前262年,秦昭王派大将白起攻打韩国,占领了野王城,切断了韩国上党郡和国都的联系。韩国想献出上党郡向秦求和,但是上党郡守冯亭不愿降秦,私自以上党17县降赵,欲引秦攻赵,迫赵与韩合纵抗秦。赵孝成王即派平原君赵胜赴上党受地,封冯亭为华阳君。秦国对上党志在必得,并将以上党作为攻赵的前进基地,所以不容赵国坐得其利。
公元前260年,秦国派左庶长王龅攻韩,夺取上党。上党的百姓纷纷逃往赵国,赵国驻兵于长平(今山西省高平市长平村),以便镇抚上党之民。赵国派廉颇为将抵抗,廉颇筑垒壁而守。秦国用离间计,赵王便派赵括替代廉颇为将,命他率兵击秦。
赵括上任之后,一反廉颇的部署,不仅临战更改部队的制度,而且大批撤换将领,使赵军战力下降。秦国见赵国中计,暗中命白起为将军,王龅为副将。白起面对鲁莽轻敌,高傲自恃的对手,决定采取后退诱敌,分割围歼的战法。他命前沿部队担任诱敌任务,在赵军进攻时,佯败后撤,将主力配置在纵深构筑袋形阵地,另以精兵5000人,楔入敌先头部队与主力之间,伺机割裂赵军。
赵括在不明虚实的情况下,贸然采取进攻行动。秦军假意败走,暗中张开两翼设奇兵胁制赵军。赵军乘胜追至秦军壁垒,秦早有准备,壁垒坚固不得入。白起令两翼奇兵迅速出击,将赵军截为三段。赵军首尾分离,粮道被断。秦军又派轻骑兵不断骚扰赵军。赵军的战势危急,只得筑垒壁坚守,以待救兵。
秦王听说赵国的粮道被切断,亲临河内督战,以阻绝赵国的援军和粮草,倾全国之力与赵国作战。赵兵断粮46天,饥饿不堪,甚至自相杀食。赵括走投无路,重新集结部队,分兵四队轮番突围,终不能出,赵括亲率精兵出战,被秦军射杀。赵括军队大败,40万士兵投降白起。白起使诈,把赵国降卒全部坑杀,只留下240个小兵回赵国报信。