1907年为第33混成旅
朱庆澜部。1909年扩编为第17军(镇)。1912年改称
川军第1师,1914年
刘湘任师长。1915年改称第15师。1916年仍称川军第1师。1918年改称川军第2师。1920年扩编为川军第2军,刘湘任军长。
1926年11月,四川军务督办刘湘所属部队被授予第21军番号,下辖7个师1个
混成旅,驻防
川东。1927年5月,第21军第5师师长向成杰被
武汉国民政府任命为第21军军长。
1932年10月,该军占据重庆周边27县,下辖第1、第2、第3、第4师和教导师、模范师[师长唐式遵、王瓒续、王陵基、范绍增、
潘文华、刘湘(兼任)]以及川东边防军第123路(司令陈兰亭、魏瀛洲、魏楷),约10万人。
1933年11月1日至1934年9月22日,“围剿“川陕根据地,由
开江、
开县向
宣汉、
达县、
万源进攻。1935年1月至3月在川黔边境追堵
中央红军。4月,控制
嘉陵江以东地区。7月,守备
名山至
雅安一线。
1935年10月,该军整编,因所辖部队较多分编为第21、第23、第44军。第21军下辖第1、第4师和暂编第2师,师长
饶国华、范绍增、彭诚。11月进出名山雅安。
1937年1月,3个师分别改称第145、第146、第162师。第162师留驻成都(1938年2月编入第67军)。第145、第146师出川抗战,经徐州,于11月中旬到达南京
浦镇。25日前后到达
宜兴、
长兴。第145师戍守安徽
广德正面。第146师侧击安徽之敌掩护
淞沪会战大军
转进。30日后,向
黄山方向撤退。12月,戍守皖南
繁昌、
荻港、
铜陵、
贵池、
东流一线,隶属第23集团军。1938年4月,军部驻
青阳。5月该军北渡
安庆,增援
合肥。6月回师
皖南。10月,军部移驻江西
浮梁,部队驻扎皖赣边界。
1939年3月,第145师改隶第50军,第3军所属第147、第148师拨入该军,改辖第146、第147、第148师。3月部队北移,守备
湖口到贵池殷家汇段江防。参加第3战区1939年
冬季攻势作战(1939年12月16日至1940年2月25日),策应
第二次长沙会战(1941年9月7日至10月12日)。
1942年调浙江龙游、兰溪、汤溪,参加
浙赣会战(1942年5月中旬至9月上旬)。8月,协同第49军攻略
衢州,进出金兰,集结
金华以西。12月开往浙西
常山开化整训。
抗战胜利后由江西
贵溪移驻苏南
昆山,隶属徐州绥靖公署第1绥靖区。1946年5月,整编为整编第21师7月,第145旅和新编第7旅调
南通、
如皋、
海安。
新编第7旅参加江北地区作战(1946年7月上至12月底),8月11日在海安李堡镇被歼灭。1947年3月军部驻昆山,第146师驻上海,第145师驻盐城、东台,新编第7旅番号撤销。当月,调
台湾,隶属台湾警备总司令部。8月,回苏中战场。11月,第145旅开安徽
黄梅,属国防部
九江指挥部,参加
大别山“进剿”作战(1947年11月27日至1948年2月底)。12月10日第146旅在江苏海安、李堡镇等地被歼灭。1948年上半年,驻防海安、如皋、南通等地。
1948年9月恢复军、师番号,驻守准阴扬州。12月,增辖第230师。1949年2月,驻守江阴、扬中,隶属京沪杭警备总司令部第1绥靖区。4月21日,经无锡、苏州、昆山向上海转移,参加
上海战役(1949年4月23日至5月25日)。5月26日,军长
王克俊率第145、第146师师长
李志熙、李前荣及团长等人先行撤离转移
舟山,部队仍在第一线作战。26日部分官兵在淞沪警备副司令官
刘昌义率领下接受和平改编。27日,第230师8000余人投诚。6月,第45、第21军合并为第21军,下辖第145师(由第21军残部并编而成)、第102师(由第45军并编而成)。8月,撤销该军番号,第145师约2000人拨补第75军,第102师番号撤销。
1949年10月,以残部为基干在四川乐山、新津重新编成第21军,下辖第26、第145、第365师,隶属西南军政长官公署。12月21日,军长王克俊,第26师师长李志熙率第26、第145师在
大邑起义。12月25日第365师在
郫县起义。