208年十一月,曹操于赤壁之战大败,但大军仍驻扎于荆州北部。十二月,吴军将领周瑜正攻打江陵的曹仁,而孙权则亲自进攻合肥,想开拓西、北两边战线。当时合肥太守为扬州(与今日之扬州市无关)刺史刘馥,孙权将军队围住合肥,另派张昭进攻九江的当涂,但不成功。
在孙权攻城逾月之后,经历了赤壁之败的曹操率军从荆州返回,并派将军张喜带兵解围。但援军久而未至。
至209年,合肥城仍然久攻不下。孙权想率轻骑亲自突击敌人,不过张纮进谏道:“夫兵者凶器,战者危事也。今麾下恃盛壮之气,忽强暴之虏,三军之众,莫不寒心。虽斩将搴旗,威震敌场,此乃偏将之任,非主将之宜也。愿抑贲、育之勇,怀霸王之计。(兵器是凶器,战争是危险的事。现今主公您恃着血气盛壮,就轻视强横凶暴的敌人,三军将士对此莫不心寒。即便可能斩杀敌将、夺取敌旗,威震敌场,但这也是偏将的任务,不是主将应当做的事。希望你能抑止贲育之勇,而怀有霸王之图谋。)”孙权便不再想突击。
而合肥城经历了一百天的攻击,又连连下雨,城墙将崩,于是,守军以草和棕榈叶补上城墙,夜晚则点火照亮城外,观察敌人行动以作防备。另一方面,张喜援军仍未到达,别驾蒋济便向刺史献计,伪称四万援军已到雩娄,派主簿假扮迎接张喜,并命三个守将带信出城后装作偷入城。当中,一个成功回城,两个却被孙军擒获。孙权得信后,相信曹军会有四万人来救,便烧阵撤退,合肥之围得解。
214年,曹操南征孙权不成,班师前留张辽、李典、乐进与七千多人防守合肥。至215年,曹操出征张鲁时,派护军薛悌送函到合肥,写到“贼至乃发(贼到时才打开)”[2]同时,孙权与刘备争夺荆州中以平分荆州作为条件,两军撤退。不过,孙权见曹操远在汉中,未能及时回到东边,在八月率十万人北至陆口,出征合肥。张辽等便打开曹操之函,写到“若孙权至者,张、李将军出战,乐将军守;护军勿得与战。(若孙权军来到,张、李两位将军出城迎战,乐将军守城;护军薛悌不要出战。)”因敌我兵力悬殊,诸将都对此指示感到疑惑。张辽说:“公远征在外,比救至,彼破我必矣。是足以教指及其未合逆击之,折其盛势,以安众心,然后可守也。成败之机,在此一战,诸君何疑?(曹公正率军在外作战,等他率领的援军到达时,孙权军必定已攻破我们。所以教函要我们在敌军集结完毕前反过来攻击他们,先挫折敌人的气势,以安定军心,然后可以顺利守城。成败之机,就在此一战,各位有何疑惑?)”
李典亦认同张辽,于是在前夜募集勇士,得到八百人,杀牛犒赏军士,准备明日大战。天亮的时候,张辽披甲持戟,先登陷阵,杀死数十人,斩二员大将,张辽大呼自己的名字,冲入军垒,到达孙权旗下阵营。孙权见如此情况大惊,无所适从之下只好登上山顶,以长戟自守。东吴军队猝不及防,陈武战死,宋谦、徐盛军都不敌,士兵开始溃散。潘璋在后,驰马追上,在马上斩杀宋谦、徐盛军中的二个逃兵,士兵见此,都回头再战。张辽叱孙权下战,孙权不敢动,看见张辽率军甚少,回头再战的东吴军士将张辽军队团团围住。贺齐也在中军拒击魏军时,捡到了徐盛受伤掉落的长矛。张辽突击冲出,包围被打开缺口,张辽麾下的数十人得以破围而出。张辽军的余众们大声呼喊道:“将军弃我乎!(将军抛弃我们了吗?)”张辽因此再度冲入包围网,救援张辽军的余众们。最终,孙权军队都披靡败走,无人敢再抵挡张辽的军队。
此后,孙权僵持在合肥十多日(“权守合肥十馀日”当中的“守”字,没有进攻的含义,但有坚持、僵持、保持的含义。既然“守”字没有进攻的含义,《乐进传》又没有记录乐进在合肥拒击敌人的功勋,《武帝纪》也只有出战的张辽、李典之功而无守城的乐进之功,所以,在孙权军队僵持在合肥的十余日这一时间段里,无法确定孙权军队是否曾经对合肥城发起过攻城战。),认为己方已经是夺城无望,又遇上疫疾,便命大军班师,自己则和一千多虎士与凌统、甘宁、吕蒙、蒋钦为后(史书原文有“唯”字,没有“等”字,陈武已死,潘璋、宋谦、徐盛不在津北)。至逍遥津北,张辽观察到孙军撤退,乘机率军追击,孙军顿时混乱,孙权被围。甘宁严厉的要捶响战鼓,增强士气,凌统亲率三百近兵冲入重围,甘宁则引弓掩护,吕蒙、蒋钦死战拒敌。
凌统救出孙权,便回头再战。孙权与甘宁蹴马趋津,但撤退路上的桥已被敌军所毁,丈余无板,当时孙权近监谷利在马后,叫孙权抓着马鞍、松开缰绳,谷利在后面加鞭,以助马势,孙权顺利跃马过河,与在津南率三千人防备的贺齐会合,孙权才成功逃脱。而凌统继续拖住敌军,左右人马已死,自己也身受创伤,杀死数十人,知道孙权已安全,才披甲潜行逃走,成功逃生后,在津渚上痛哭流涕。
张辽率领着投降的东吴军人返回合肥城,在押解斩俘的途中,张辽询问投降的东吴士兵:“有个紫色胡须、上身长腿短、善于骑射的人是谁?”东吴降卒说:“是孙权。”等到张辽与乐进相遇,谈到这事,叹息己方没有早点知道孙权的样子,早知道就急追他,说不定就能抓到他了。合肥城内的曹军将士听说,皆大为叹恨。
太和四年(230年)正月,魏国于合肥境内建筑合肥新城,防备吴国。当年冬天,孙权声称要取合肥。满宠上表要求召集兖州、豫州兵力。后来两州兵力云集,敌兵只好退还了。朝廷命满宠就此撤兵。满宠认为敌兵大举退还,恐怕不是本意。他们一定是佯装退却以麻痹我们,等我们撤军后,好趁虚而入。于是上表要求不要撤军。于是曹魏采纳满宠的建议,让兖州、豫州的援军继续驻扎在扬州境内。孙权果然来攻打合肥城,不克而还。