夫连称、管至父(管仲的父亲)因为出戍葵丘没有得到及时更替,也怀恨在心,于是勾结公孙无知,密谋欲杀害襄公,拥立无知为齐君,这件事引起大夫管仲、鲍叔牙等人的不满。他们感到“君使民慢,乱将作矣”,便分别拥戴公子纠和公子小白出奔鲁国和莒国避难。周庄王十一年(公元前686年),齐襄公到外地狩猎时受伤,公孙无知得知齐襄公受伤后,派人杀死了齐襄公。连称、管至父立无知为国君,引起全国的反对。接着齐国大夫王子成父杀死公孙无知,宣布迎接在鲁国避难的公子纠为君,并和鲁庄公会于蔇,商定由鲁出兵护送公子纠返国。而奔往莒国的公子小白闻悉国内变乱,也在鲍叔牙和莒兵护送下急忙返国,争夺政权。管仲闻讯后,于途次邀击,射伤小白,但被鲍叔牙机智营救,抢先赶回国都临淄,就了侯位,即为齐桓公。公子纠和管仲见国君位置被小白抢先夺去,只好仍回鲁国栖身,这使齐、鲁两国关系又趋紧张。新即位的齐桓公小白,因为鲁国支持公子纠,对鲁非常不满。鲁庄公却以公子纠没有当上齐国国君,对齐极为仇视,便亲自率大军强送公子纠返国,进入齐境干时地区,齐桓公即与鲍叔牙等商讨对策,决定“以兵拒之”。双方各以兵车500辆投入战斗。齐军一举击破鲁左右军,继而包围鲁庄公所统帅的中军。鲁庄公把大旗改插在将领秦子车上,自己改乘轺车.化装突围,才免于被俘。鲁军惨败后,鲁庄公在齐军压力下,竟改变初衷,杀死公子纠,把管仲押送给齐国。干时战后,鲁庄公吸取失败的教训,加强军队训练,赶制各种兵器,疏浚曲阜以北的洙水,以防齐军进攻。与此同时,政治上也作了些取信于民的工作,所以当齐军逼近鲁境,鲁国北部形势紧张时,鲁庄公决定动员全国力量对齐作战。这时一位名不见经传但确有政治远见和军事素养的人曹刿,怀着拯救祖国的决心,进见鲁庄公,陈述了自己对战胜齐国的策略,对庄公的战争指挥和鲁军的胜利起了重大作用。公元前684年春,齐桓公在巩固了君位之后,自恃实力强大,不顾管仲的谏阻,决定兴师伐鲁,以报复鲁国一年以前支持公子纠复国的宿怨,企图一举征服鲁国,向外扩张齐国的势力。当时鲁国执政的是鲁庄公,他闻报齐军大举来攻,决定动员全国的力量,同齐军一决胜负。就在鲁庄公准备发兵应战之时,鲁国有一位名叫曹刿的人认为当政者庸碌无能,未能远谋。他不忍心看到自己的国家遭受齐国军队的蹂躏,因而入见庄公,要求参与战事。曹刿询问庄公依靠什么同齐国作战。鲁庄公说,对于衣物食品之类的东西,总是要分赐给臣下,不敢独自享用。曹刿指出,这样做不过是小恩小惠,不能施及全国,民众是不会出力作战的。鲁庄公又说,自己对神明是很虔敬的,祭祀天地神明的祭品从不敢虚报,很守信用。但曹刿认为,对神守点小信,未必能感动神明,神也是不会降福的。鲁庄公想了一下又补充道,自己对待民间的大小狱讼,虽然不能做到明察秋毫,但是必定准情度理地予以处理。曹刿这时才说,这倒是尽到了君主的责任,为老百姓办了好事,具备了同齐国决一胜负的基本条件了。为此,他请求随同鲁庄公奔赴战场,鲁庄公允诺了他的这一请求,让他和自己同乘一车前往长勺。
周庄王十四年,齐桓公二年,鲁庄公十年(公元前684年),齐军仗着兵强马壮,侵入鲁境。鲁庄公暂时避开齐军锋芒,撤退到有利于反攻的地方长勺(今山东曲阜北郊)。齐国由于干时战争的胜利,鲍叔牙以下将士都轻视鲁军,认为不堪一击,于是发起声势汹涌的攻击。鲁庄公见齐军攻击鲁军阵地,就要擂鼓下达应战的命令。曹刿劝阻说:齐兵势锐,我军出击正合敌人心愿,胜利没有把握,“宜静以待”,不能出击。庄公遂饬令鲁军固守阵地,只令弓弩手射击,以稳住阵势。齐军没有厮杀的对手,又冲不进鲁军阵地,反而受到鲁军弓弩猛射而无法前