Cao Cao’s ordeal against Lü Bu [Three Kingdoms]

In the summer of 194 AD, while Cao Cao was deep in Xuzhou, devastating Tao Qian’s forces and advancing toward Tan County, disaster struck at home. News reached him: Chen Gong and Zhang Miao had rebelled, opening the gates of Yanzhou to Lü Bu, the famed warrior fleeing from Dong Zhuo’s downfall.

Lü Bu was swiftly proclaimed Governor of Yanzhou, and within weeks, nearly all commanderies and counties had defected—except for three loyal cities: Juan, Fan, and Dong’e, held by Xun Yu, Jin Yun, and Zao Zhi.

Cao Cao, realizing his entire power base was collapsing, immediately abandoned his campaign in Xuzhou and rushed back with his army to reclaim his heartland.

The Battle of Puyang

Learning that Lü Bu was stationed in Puyang, the former capital of Dong Commandery (Dongjun), Cao Cao resolved to strike at the core of the rebellion. He marched directly to Puyang, aiming to defeat Lü Bu in a decisive battle.

The Battle of Puyang - Cao Cao against Lü Bu - Three Kingdoms
The Battle of Puyang – Cao Cao against Lü Bu – Three Kingdoms

The two armies clashed in a fierce and protracted siege that lasted over a hundred days. Historical accounts in Chen Shou’s Sanguozhi and Sima Guang’s Zizhi Tongjian describe repeated assaults and counterattacks, with neither side gaining a lasting advantage.

At one point, Cao Cao’s forces set fire to the city’s western gate, attempting to breach the defenses. But Lü Bu’s elite cavalry launched a devastating countercharge, and Cao Cao himself was nearly killed in the chaos—only saved by the bravery of his bodyguard, Dian Wei.

Despite their valor, Cao Cao’s army failed to retake Puyang. The city remained in Lü Bu’s hands, and the war settled into a deadly stalemate.

The Great Locust Plague of 194 AD

The prolonged conflict coincided with a catastrophic locust plague that swept across Yanzhou. Crops failed entirely, and famine gripped the land. The Zizhi Tongjian records that “people resorted to cannibalism”, and “corpses lay in the fields”.

Both armies faced starvation. Lü Bu, whose forces were stretched thin and surrounded—Yuan Shao’s territory to the north, Cao Cao’s remnants to the east—could no longer sustain his position in Dong Commandery (Dongjun).

He withdrew his forces to Shanyang Commandery, seeking better supply lines and more defensible terrain.

Cao Cao, too, was forced to abandon the siege of Puyang. The region was ravaged and depopulated, and scattered rebel forces still threatened his rear. With no food and dwindling strength, he had no choice but to retreat and regroup.

Yuan Shao’s opportunism: Seizing the eastern frontier

Seeing Dong Commandery (Dongjun) as a power vacuum, Yuan Shao moved swiftly to assert control. He recalled Zang Hong, who had been fighting in Qingzhou, and appointed him Administrator of Dong Commandery.

To consolidate his authority, Yuan Shao relocated the administrative seat of Dong Commandery from Puyang (on the south bank of the Yellow River) to Dongwuyang County on the north bank—a strategic move that placed the commandery firmly under Jizhou’s (Yuan Shao’s core territory) protection.

Meanwhile, Yuan Shao appointed his eldest son, Yuan Tan, as Governor of Qingzhou, securing his eastern flank.

He then sent a message to Cao Cao, offering military aid against Lü Bu—but with a stringent condition: Cao Cao must send his family to Yecheng as hostages to guarantee loyalty.

The decision that saved Cao Cao’s independence

By late 194 AD, Cao Cao was at his lowest point. He controlled only three cities, yet still commanded a large army. With no harvest, no supply lines, and Lü Bu still a threat, his forces were on the verge of mutiny.

Faced with extinction, Cao Cao considered accepting Yuan Shao’s offer, even at the cost of his autonomy.

But Cheng Yu, one of his most loyal and insightful advisors, urged him otherwise. In a famous remonstrance, Cheng Yu warned:

“You hold the Mandate of Heaven in your heart. To submit to Yuan Shao now would be to surrender your destiny. With the three cities we still hold, we can rebuild. Do not throw away your independence for temporary relief.”

Moved by Cheng Yu’s words, Cao Cao rejected Yuan Shao’s ultimatum, choosing independence over survival at the cost of sovereignty.

Survival at any cost

To feed his army, Cheng Yu took drastic measures. He ordered soldiers to seize grain from the people of Dong’e County, his own hometown—a painful act of sacrifice.

Even more grimly, historical sources such as Wang Can’s Records of Heroes and Pei Songzhi’s annotations suggest that human flesh was dried and used as provisions during this period. While not explicitly confirmed in the Sanguozhi, the severity of the famine makes such accounts plausible.

Meanwhile, Xiahou Dun took a different approach: he organized his troops to cultivate rice fields, pioneering the tuntian (military farming) system that would later become a cornerstone of Cao Cao’s economic recovery.

Did Yuan Shao help Cao Cao or not?

The question of whether Yuan Shao sent troops to aid Cao Cao remains contested:

  • According to the official Records of the Three Kingdoms (Sanguozhi), Yuan Shao did not intervene. Cao Cao’s eventual victory over Lü Bu was achieved through his own resilience and strategy.
  • However, Xie Cheng’s Book of the Later Han and Chen Lin’s Proclamation Against Cao Cao (ironically, a piece written for Yuan Shao to denounce Cao Cao) mention that Cao Cao sought aid from Yuan Shao, who, out of sympathy, sent reinforcements that helped defeat Lü Bu.

Modern historians lean toward the possibility that some form of indirect support—perhaps grain shipments or limited troop movements—may have occurred. Yuan Shao had a strong strategic interest in preventing Lü Bu from consolidating Yanzhou, as it would have placed him between Lü Bu in the south and Gongsun Zan in the north (see how Yuan Shao cleverly seized Jizhou and went to war against Gongsun Zan)—a two-front war he could ill afford.

Moreover, how else could Cao Cao have survived the famine without external logistical support?

From despair to recovery

By 195 AD, Cao Cao had regrouped. He launched a series of counteroffensives, defeating Lü Bu in battles at Juye and Dingtao. Tao Qian died that year, after which Liu Bei succeeded him as the new Governor of Xuzhou. Heard of that news, Lü Bu fled to Liu Bei in Xuzhou for refuge.

Cao Cao finally reclaimed Yanzhou, and by 196 AD, he would welcome Emperor Xian to Xuchang, beginning his rise to hegemonic power.

The struggle against Lü Bu was not just a military campaign—it was a test of survival, resilience, and leadership. It forged Cao Cao’s ruthless pragmatism, shaped his economic policies, and solidified the loyalty of men like Cheng Yu, Dian Wei and Xiahou Dun.

Share this:

Leave a Reply

Your email address will not be published. Required fields are marked *