Siege of Chencang

Seeing Wei was taking a beating from Wu in the east, Zhuge Liang decided it was a good opportunity to make another attack against Wei. However, upon reaching the city of Chencang he found if staunchly defended by General Hao Zhao. Whatever Zhuge Liang did Hao Zhao countered, eventually forcing Zhuge Liang to retreat.

Background
At the Battle of Jieting, Great General of the Central Army Cao Zhen had dealt a blow to Zhuge Liang but he believed he would soon take an opportunity to return. Cao Zhen thought the next road Zhuge Liang would take would take him past Chencang. In anticipation of Zhuge Liang's actions, he dispatched General Hao Zhao and Wang Sheng 王生 (Wang Shuang 王雙?) to reinforce and repair the city.

Cao Xiu had just been lured into a trap and badly defeated by Wu. And that Wei troops were moving eastwards to reinforce the area against Wu. Zhuge Liang decided it was a good opportunity to launch another campaign north against Wei.

The Battle
Zhuge Liang led several tens of thousands of troops through San Pass and laid siege to Chencang, which at the time only had 1,000+ men garrisoned there.

Zhuge Liang sent Jin Xiang to convince Chencang to submit. The defender of Chencang, Hao Zhao, was from the same county as Jin Xiang, so Zhuge Liang thought he could successfully convince him to surrender. Jin Xiang tried repeatedly, but Hao Zhao would not bend, forcing Zhuge Liang to commence his siege.

Zhuge Liang built scaling ladders and movable turrets and advanced his troops forward. Hao Zhao responded with flaming arrows; he set fire to the scaling ladders, burning them and the assailants; and suspended large millstones with ropes and swung them at the towers, destroying them.

Zhuge Liang built catapults and fired at the city; he brought forth dirt and filled up the moats so he could have men scale the city walls. Hao Zhao countered by building another walled city within the city limits. Zhuge Liang had sappers dig tunnels under the new walls, but Hao Zhao countered by digging moats within his walls and intercepting the tunnels.

For 20 days and nights, the Shu forces besieged the Chencang but it would not fall. Cao Zhen sent General Fei Yao to relieve Chencang. Zhuge Liang's supplies were exhausted and he withdrew. General Wang Shuang led his cavalry in pursuit of Zhuge Liang's forces but is easily defeated in battle.

General Zhang He was also dispatched with 30,000 troops but Zhang He predicted Zhuge Liang would be forced to retreat due to supply shortage before he arrived, which turned out to be correct.