赵括到长平后,严明了军纪,对廉颇使用的将领多有裁撤。廉颇好用勇敢军人为将,但多不善谋,不善统御。赵括对赵军进行了一番整顿后,再与王龁交战,王龁不利。昭王听说赵括已到长平,急调武安君白起。赵括见秦军的集结与部署大为变动,知道武安君已到军中。八月,白起见赵括渐收失地,便提出与赵括决战。孝成王命赵括抓住时机,尽快击败白起,再向东解决魏冉。于是,赵括同意决战。
白起在西,赵括在东。在白起西面五十里是很深很宽的沁水,在赵括东面十里是河床很宽但水很浅的丹水。两军南为太行、王屋,为秦军所占,北为太行山脉的几处关隘,分归秦赵。这块矩形战场坐落在上党盆地中。
赵括命令驻守沁水西岸皮牢(今山西翼城东北)的赵军扫除沁水沿岸的秦军,控制沁水,向东与赵括军夹攻白起军。命令驻守晋阳的赵军南下临汾、安邑一线,保护皮牢军,威慑河西空虚的秦国本土。
决战开始了。赵括率军猛击白起军,白起军向西撤退。眼看就要退到沁水东岸了。突然,赵括发现,沁水东岸沿线有秦军的营寨。这是白起命令驻守在沁水东岸光狼(今山西端氏西北)的秦军在一夜之间扎起的营寨。白起军进入背水阵中,拼力死守。赵国的皮牢守军被王龁阻击,没有完成赵括的控制沁水沿岸、东渡夹击白起军的指令。晋阳的守军被秦将司马梗阻击无法南下完成对皮牢军的支援。赵括军虽然屡次冲入秦军背水阵,但在沁水中的秦国战船马上又配合岸上的秦军将进入秦寨的赵军消灭。这些战船是坐镇野王(今河南沁阳)的秦昭王派来的。赵括与白起在沁水东岸进行了一场面对面的消耗战,两军难分胜负。赵括无法消灭白起军,也摆脱不了他们。由于秦军列的是背水阵,赵军突破他们没有意义,突破后,面对的是一条又宽又深的沁水,水面上是秦军的战船。赵括想退回长平,但稍一行动,白起军就死死地缠上来,赵括明白了,白起是要全歼他这支赵军。大军作战,粮食是关键。白起军有沁河上的秦舰补充给养,而赵括军却只能吃随身携带的少量粮食。赵括不得已,命一支赵军断后,掩护大军东撤。但就在快到长平的时候,前方出现了一片营寨,一股数量极大的秦军堵住了归路。这是秦昭王从野王发来的援军,目的在于断赵括的退路和粮道。身后的白起军在消灭了执行掩护任务的赵军后,又攻了上来,与阻断赵括的野王军夹击赵括。摆在赵括面前的路只有越过丹水东撤陵川。赵括撤到丹水河边时,意想不到的事情发生了。本来不深的丹水突然间变得像沁水一样宽,一样深了。没有渡河船只的赵军被突然间变宽的丹河断了最后一条路。原来,丹河里的水是秦昭王从黄河中引来的。丹河中有不少秦军的舰船。丹河东岸有秦王从野王发来的部队,阻击陵川赵军的援救。实际上,陵川的赵军未敢来救。
赵括被秦军死死地围住了。长平、晋阳、皮牢的赵军拼命向赵括靠拢,秦昭王派出的野王军、司马梗军、王龁军也拼命地阻击。整个河东战场的形势是冲与堵,只要秦军有一路被突破,秦军就会满盘皆输。秦昭王让穰侯从陶国对邯郸加紧进攻,使赵国不能抽调兵力援救长平。
赵括面临的最大问题就是没有粮食。随身携带的少量粮食早已吃光,粮道又被切断。战马也都杀了,可以吃的东西都吃了。最后,赵括不得不下令以军中残、病、弱、老者为食。赵括曾派赵军中英勇果决之士刺白起,白起受伤。在被困了四十六日后,赵括选军中一酷肖自己之人,穿他的铠甲,用他的旗号引一军向晋城(今山西晋城)突袭,而自己引一军向长平突围。秦军射死酷肖赵括者,以为赵括已死。秦军围住赵括军,向赵军喊话,说赵括已死,劝赵军速降。于是,赵括诈降。白起发现,赵军虽降,但仍然不乱,疑是诈降,怕赵军反复。白起想先将赵军解除武装,再尽杀之。便假意接受赵军投降。赵括对手下的将领说,赵军并未战败,斗志未懈,白起不会真心受降。秦军的接受投降必然也是假的,秦军在解除赵军武装后,会再攻赵军。赵括打算在秦军受降时,利用与秦军接近的机会,先动手。在受降时,赵军突然向秦军发动袭击,两军再战,死伤无数,赵军终因力竭而败。白起选从长平附近捉到的赵国少年向邯郸报假信,以造成邯郸混乱。邯郸听说赵括投降,大震,秦国混在邯郸的间谍乘机渲染赵军大败的气氛,蛊惑人心。与赵奢赵括不善者请赵王夷灭赵括三族。因赵括母在赵括出征前与赵王有约,孝成王没有食言。田单不信,拷问报信的赵国少年,方知这些少年乃外围之人,并非亲眼所见赵括投降。报信人都是秦军不杀,依秦军之言给赵国报信的。田单尽杀少年,使间谍详查长平之战的确实情况。不久,间谍回报田单,赵括是诈降,最终战死。赵括全军战死,虽然损失惨重,但消耗的秦军数量更多。于是,田单稳定赵人心,捕杀蛊惑造谣者。孝成王问望诸君长平之战,乐毅说,赵括虽死而赵军未败。赵括的部署可谓得当,只是赵皮牢、晋阳二军未能完成任务,殊为可惜。赵军虽然损失稍大,但秦军的消耗的人力物力也不相上下,秦赵两强对峙的格局没有改变。赵国的最大损失是失去了赵括。秦军虽然暂时能够占领河东,但已兵力虚弱,必然会被赶走。孝成王厚赠赵括家人,夷陵川守将。