1948年8月4日,第一野战军发布进攻兰州的命令。第18兵团留置宝鸡天水地区,钳制胡宗南集团,保障侧翼和后方安全。第19兵团进至固原、海原等地区牵制马鸿逵集团来保护主力的右翼安全。第1兵团进攻武山,陇西等地区,成功后北渡黄河威胁青海省会西宁,截断了兰州守军的后路。与此同时,第2兵团和第9兵团共15万人向兰州正面进发。
8月21日,正面的第2和第9兵团,出动了9个团的兵力向兰州试进攻,结果因为轻敌和准备不足的原因,损失惨重,不仅没有夺下阵地,还消耗了大量物资人力,伤亡人数达2500以上。对此结果,第一野战军虚心接受失败,总结经验教训,认真观察敌情,研究战术。面对强敌,第一野战军决定用三个兵团的力量,全力攻打兰州。8月25日,西北野战军攻城部队全力攻打兰州,经过激烈的战斗。西北野战军攻占了被称为"兰州锁钥"的沈家岭、狗娃山、马架山、古城岭和皋南山最高峰营盘岭等一系列制高点。与此同时,第一野战军在强大的火力下,解放了临夏。
马步芳感到后方空虚,从兰州调派了两个骑兵旅保障西宁,同时向胡宗南和马鸿逵求援,希望减轻压力。但是胡宗南、马鸿逵也自生难保。无奈之下,马步芳的儿子马继援带领残部趁夜色向西宁方向撤退。其余马家军在人民解放军的攻势中,丧失殆尽,成为瓮中之鳖。到了26日,兰州城彻底解放。兰州战役结束。这就是兰州战役的过程。