中国远征军司令长官卫立煌将司令长官部移至保山马王屯,并在诸葛营设立前方指挥部以便指挥调度。争取到美国盟军总指挥史迪威将军的支持,调来大批美军教官指导部队开展战前培训演练,提高战斗力并熟悉美式装备。还安排制作新地形图、成立怒江渡河工程处准备渡河工具等。 日军第56师团通过监听中国军队无线电通讯掌握远征军动态,加强了腊猛、平戛、滚弄、腾冲、瓦甸、冷水沟等地的防御设施,进行了一系列作战准备工作和强化训练,并储存了军需品和备用粮秣。
1944年5月11日早,中国远征军2万多人在怒江东岸三百里地分十二处强渡怒江,顺利过江。第20集团军第54军攻占了灰坡、北斋公房,向马面关、瓦甸方向攻击前进;第53军攻占了大塘子,向林家铺、江苴街方向攻击前进,各部伤亡较大。第11集团军主要在红木树、平达两地与日军激战,先后攻占了红木树东北各高地、平达外围据点。 围攻腾冲城之前必须扫除腾冲城外围的所有日军据点,包括飞凤山、毗卢寺、老草坡、英国领事馆、税务司衙门、拐角楼、龙光台、来凤山等10余个。远征军第20集团军决定以第54军于西、南,第53军于东、北,包围攻击腾冲,第198师为预备队。 来凤山是腾冲城内部唯一的制高点,四周险峻,易守难攻。日军在此布下层层铁丝网和大量地雷。为抢占来凤山,远征军经过17天的战斗,在盟军飞机投下燃烧弹以及远征军不断猛攻的配合下,最终攻克来凤山。
1944年8月2日,远征军5个师向腾冲城再次发起猛攻。日军第56师团兵分多路,打算以优势地形分割阻击远征军,远征军毫不退却,与日军展开激烈战斗,一个山头接着一个山头地血战,直到逼近城墙下。 为打开城墙,远征军将炮弹与尖锐物结合钉入城墙引发爆炸,炸开一个十多米的口子后,战士们冒着炮火涌入腾冲城内部,与日军进行大规模的逐街逐巷的争夺。
经过40多天的巷战及白刃战,1944年9月13日,远征军全歼守城日军,9月14日,腾冲城宣告光复。 腾冲战役历时127天,所历大小战役40余次。此役中国远征军成功收复腾冲县城,成为中国抗日战争期间收复的第一个有日军驻守的县城。腾冲战役的胜利,创造了抗日战争中首个中国军队全歼日军的战例,粉碎了日本妄图长期占领滇西、威胁中国抗战大后方的企图,奠定了滇西反攻作战的胜利基础。