三所里,这个朝鲜西部的一个小山村,注定将在中国军队的战史上留下它的名字。这个小山村南临大同江,北靠群山,只有一条南北公路从北通向平壤,是联合国军北进和南逃的必经之路。38军接到穿插三所里的命令后,命令113师率先出发。在穿插过程中,113师多次与美军相遇。由于志愿军军服没有任何符号标志,志愿军毫不进行躲藏,大大方方地向南“溃逃”。美军则通知三所里的韩军,说“有一股撤退中的大韩民国国军”正在向三所里撤退,要他们准备好饭菜进行招待。而志愿军战士见美军把他们当成了韩军并毫不阻挡,更是大大方方地向三所里穿插。113师的先头部队到达三所里时,该地韩军还正在做饭。经过短暂的战斗解决了这些韩军,113师部队立即在三所里摆开阻击阵地。刚刚准备好,美军的撤退部队就扯了下来。到11月30日,志愿军穿插部队截断了美军退路,至此,美军第9军的第2、第25步兵师、土耳其旅和美军第1骑兵师,韩军第1师各一部陷入包围之中。
美军为了撤往南方,出动大量飞机和坦克对志愿军阻击阵地发起突击,而志愿军则牢牢地在各阵地上承受着美军的狂轰滥炸。在阻击中,三十八军打了许多艰苦的阻击战,比如在著名的松骨峰阻击战就是在此阶段出现的。到11月30日深夜到12月1日凌晨,志愿军向被包围的联合国军发起总攻。美军第2、第25师主力大部被歼灭,韩军第一师和土耳其旅也大部被歼灭。美第九军突围无望,抛弃大量辎重装备,阻塞志愿军追击道路,向安州方向撤退。而联合国军其他部队也有部分未被歼灭的部队撤出包围圈。12月5日,志愿军收复平壤。由于三十八军在战役中出色的表现,彭德怀司令员在通电嘉奖令中写道:“中国人民志愿军万岁!三十八军万岁!”此后,三十八军以“万岁军”的名号名扬天下。
在东线,北进的联合国军也没有遇到志愿军的抵抗,而负责东线的正是刚刚进入朝鲜的第九兵团。第九兵团是原本准备解放台湾的部队,每个军都是四四制或五五制的营编制,但是从南方紧急入朝的第九兵团缺少冬衣,在朝鲜的冬天忍受着严寒作战,11月25日第九兵团15万人避开美军的侦查,潜入长津湖地区设伏。11月27日,长津湖一带大规模降雪,在美军尚未发现志愿军集结的时机下,九兵团于当日黄昏突然发起反击。
在长津湖以东的新兴里,27军以4个团的兵力向美军第七师第三十一团级战斗队发起进攻。当志愿军发起进攻时,这支因干涉苏俄革命而被授予“北极熊团”称号的部队大部分士兵正在睡觉。在深夜的战斗中,志愿军迅速打掉了美31团的团部。到12月2日,第三十一团级战斗队被全歼,团旗被志愿军所获。这是志愿军在朝鲜战场上唯一全建制歼灭的美军团级作战单位。
在遭到志愿军的反击后,东线联合国军遭到包围,开始向南后撤。11月底,被包围的英国皇家海军第四十一团向第九兵团投降。在美军的撤退中,美国海军、空军对阻击的志愿军进行集中攻击。12月3日,美国海军陆战队第1师主力丢弃重装备撤往下碣隅里,12日,美国海军陆战队第1师撤回五老里。其间,志愿军层层阻截,步步紧追,冒着严寒和空中的轰炸对其进行拼死阻击,但未能给予美国海军陆战队第1师重创。美军利用装备优势突破志愿军的包围向咸兴、兴南撤去。随着朝鲜人民军收复元山,和中朝军队收复三八线以北大部地区,东线在兴南地区联合国军陆上退路已断,向兴南港集中准备从海上撤退。12月17日,志愿军占领咸兴。联合国军在海军支持下从兴南港全部南撤。12月24日,志愿军收复兴南港。
至此,第二次战役结束,志愿军将联合国军赶回三八线以南。部分朝鲜人民军部队也越过三八线。