自尽身亡,李自成在太原休整八天之后,又攻取了忻州,进而急攻代州。周遇吉在代州坚守数天之后,粮尽援绝,率军突围后退保宁武关。宁武关位于山西中部,传说由凤凰所变,故有“凤凰城”之称。宁武是由太原北上大同的交通要道,明朝景泰年间建筑关城,与偏关、雁门关一起成为防御鞑靼骑兵的山西三关之一,战略地位极为重要。无论周遇吉如何备战,以山西孤旅是无法与李自成数十万大军相抗衡的,代州的失守只是时间问题。宁武关地势险要,而农民军又志在必得,此次战役进行得相当惨烈。
农民军因为在明军火炮猛烈的轰击伤亡较重,曾以“五日不降者屠其城”的宣传攻势希望迫使周遇吉投降,明军火药即将耗尽的时候,一些将领也曾劝说周遇吉改变策略不要一味硬拼,但被“一军皆忠义”的周遇吉断然拒绝。于是在城内设伏,出弱卒诱敌入城,亟下闸杀数千人。
由于周遇吉的顽强抵抗,李自成一度准备放弃攻取宁武关,但他手下的将领们一再坚持,农民军因而再次对宁武关发起了猛攻,在火炮的轰击之下,关城不断坍塌,农民军冲锋的前队战死,后队马上跟进顶替,终于攻破宁武关。
农民军攻入关城之后,周遇吉继续指挥巷战,从战马上摔下来后又徒步奋战不止,在身中数箭被农民军生擒后也仍然破口大骂不愿屈服,农民军将周遇吉悬吊于高竿之上乱箭射死,然后又将尸体肢解。周遇吉的夫人刘氏素来勇健,带领几十名妇女拒守公廨,登上屋顶向农民军放箭,全部被农民军烧死,城破之后,农民军“遂屠宁武,婴幼不遗”,百姓被杀者甚众。