崇德五年(1640年)三月,皇太极再次率部向辽西明军发动进攻,企图打通入关的道路。从这时开始,皇太极就派兵对锦州进行围困,锦州守将祖大寿坚决抵抗,拒不投降。第二年,皇太极增派郑亲王济尔哈朗、武英郡王阿济格、贝勒多铎等人率领大批援军加强攻势,用红夷大炮猛轰锦州城,志在必得。祖大寿频频向明朝告急,明蓟辽总督洪承畴为经略,调集东协总兵曹变蛟、山海关总兵马科与刘肇基、宁远总兵吴三桂率兵四万人前往阻击,并且作了长期作战的部署。双方在义州对峙。清军出没于锦州,以阻击松山、杏山的明军。洪承畴以守为战,步步为营,接连击败来攻的清军。
明朝方面,不惜调集北方三边劲旅,出动八总兵即宣府总兵杨国柱、大同总兵王朴、密云总兵唐通、玉田总兵曹变蛟、蓟州总兵白广恩、前屯卫总兵王廷臣、山海关总兵马科、宁远总兵吴三桂,合兵13万,马4万,见清兵屯于锦州东南五里之乳峰山东,便命令部队营于松山与乳峰山之间,构筑工事,骑兵布阵于松山东西北三面,其势直逼锦州。松山离锦州18里。杏山在松山与塔山之间,相距各30里。皇太极闻知,不顾鼻血涌流,也顾不得群臣劝阻,毅然决然地亲率三千精骑,昼夜兼程,六日后到达前线。看到形势十分严峻,便决定将自己所率援军布阵于松山、杏山之间,横截大路,将松山与杏山隔开,以切断明军的后路。
明军发现皇太极出现在松山前线,军心大乱。连续两天发起攻击,没有取胜,士气低落。皇太极估计明军因为缺饷可能连夜撤退,便命令部队在杏山、塔山、小凌河诸口险要处设下埋伏,打个措手不及。