Prelude After his failure on Mount Qi and Jieting, Zhuge Liang indeed changed his target to Chencang as Cao Zhen reckoned. Thoroughly prepared, the Shu Chancellor brought with him a selection of siege weapons and an expedition force of one hundred thousand men. Although a few officers including
Wei Yan recommended an alternate route, Zhuge Liang was determined to follow the Jialing Valley, which emerges in the north where the Wei River widens considerably near the city of Chencang. Zhuge Liang planned to capture Chencang as a midpoint for further military actions against the great metropolis
Chang'an. The Shu army reached the fortress-city of Chencang during December 228, wherein the Wei defences were apparently not completed as Cao Zhen had not sent additional forces to move in. Having completed the encirclement, Zhuge Liang sent Jin Xiang, a personal friend of Hao Zhao, to convince the latter to defect. The first time the two friends spoke, Hao Zhao would hear none of it, saying "The laws of Wei are what you practise; the nature of me is what you know. I have received so much from my country and I can't let down my family. You ought to say no more, I'll only die defending this city." Jin Xiang told Zhuge Liang what Hao Zhao had said, and again Zhuge Liang sent Jin Xiang to soften Hao Zhao. "Our armies are enormous while you only have a tiny force, what good is it to perish for a futile effort?" said Jin Xiang outside the city gate. This time, however, Hao Zhao fitted an arrow to his bow and replied, "What I said earlier remains solid. I know you, but my arrow doesn't", implicitly threatening to kill Jin Xiang. Upon hearing this, Zhuge Liang began his offensive.
Siege Zhuge Liang aimed to take the fortress directly; he carried out an
escalade tactic through the use of siege ladders, but Hao Zhao countered with fire arrows, burning the platforms and parching the men upon them. While the ladders were still aflame, Zhuge Liang's battering rams designed to breach the city gate had arrived, and Hao Zhao hurriedly chained some boulders and rolled them down, smashing the rams. The quick response and leadership of Hao Zhao shocked Zhuge Liang, as the latter never expected such a determined resistance. Zhuge Liang then ordered a withdrawal and reconsidered his tactics. Since moats made access to the walls difficult for siege weapons, which needed to be brought up against a wall to be effective, Zhuge Liang decided to remove the trenches to create more possible attack points. Following Zhuge Liang's order, the besiegers started to fill the chasms and prepared their
siege towers. With the ditches removed, the
siege engines moved upon the castle while foot-soldiers climbed the walls like ants. However, Hao Zhao outwitted Zhuge Liang by building interior walls within the outer walls. As long as the siege towers could not pass the outer walls, the soldiers on top of the towers who managed to overcome the outer walls could not climb the second inner walls. Trapped inside the two gates of walls, those soldiers who descended from the towers became easy targets for archers on the inner walls. Suffering another defeat, Zhuge Liang adopted an architectural approach by asking his soldiers to dig tunnels that led to the substructure of the fortress. However, his method was actually different from the more common mining tactic, which is to excavate beneath the foundations of the walls, and then deliberately collapsing or exploding the tunnel—it is recorded that Zhuge Liang wanted to create some underground passages for his armies to enter the city directly in order to catch his opponent off guard. Eventually news came of Wei reinforcements led by Zhang He, so the Shu army retreated. Seeking glory, a Wei general,
Wang Shuang, led his cavalry in pursuit of the enemy to the
Qinling Mountains, where he fell into an ambush planted by Zhuge Liang and was killed. On the other hand, Zhang He precisely predicted Zhuge Liang would retreat before he even arrived at Chencang, so Zhang He headed for Nanzheng, but was not able to catch up with Zhuge Liang. ==Aftermath==