曹操统一了北方之后,剩下能与他对抗的,就只有在长江一带的孙权和在湖北一带的刘备了。
公元208年,曹操带了20万大军(对外号称80万)南下。刘备退守湖北武昌,此时他只有军士两万多人。在军师诸葛亮的建议下,他决定与孙权共同抗曹。诸葛亮向孙权指出,曹操虽然人多,但其中有七八万是刚投降的荆州士兵,这些人主要是水军,是作战的主力,但他们不一定真心服从曹操。而北方的曹操士兵,不善于水战,长途而来生病的也很多。这些分析使孙权看清了形势,同意派大将周瑜带领三万军士与刘备一起战斗。
曹军驻扎在赤壁(今湖北嘉鱼县东北,又一说在今湖北赤壁市),曹操下令用铁索把战船锁在一起,以便北方士兵在船上行走。诸葛亮和周瑜都决定用“火攻”的方法进攻曹操。一天夜里,刮起了东南风。周瑜派部下黄盖假装投降曹操,带着十艘战船,船上装着灌了油的柴草,向曹军驶去。接近曹军时,他们同时点火,火船顷风向曹操的战舰驶去,曹军战舰因为锁在一起,一时无法解开,不一会便成了一片火海。火又烧到了岸上,曹军死伤很多。
赤壁之战后,全国形势发生了变化。曹操退回北方。曹操死后,公元220年,他的儿子曹丕废掉汉献帝自立,国号为“魏”,都城为洛阳。刘备乘机占据了荆州大部分地方,又向西发展,在公元221年,也自立为帝,国号为“蜀”,建都成都。孙权则巩固了在长江中下游的势力,公元222年称王,国号“吴”,都城为建业(今南京)。三国鼎立的局面,直至公元280年西晋灭吴才结束。