鲁庄公十年(前684)初,急于争当霸主的齐桓公,率军攻鲁,企图将其置于自己控制之下。春秋初期,鲁和齐一样,都是东方的军事大国,总兵力高达战车千乘,士兵三万。但由于四个多月前,刚刚在乾时被齐军打得大败,连姬同本人所乘的戎路(指挥战车)也被齐军掳去,军力损失甚大,所以这时在力量对比上处于劣势。曹刿当时并未任官,听到动员备战的消息后,准备晋见姬同,陈述己见。乡邻亲友都认为没有必要,劝他说:国家大事,自有“食肉”的大夫们为君谋划,你不在职,何必参与进去!曹刿认为掌权的大夫们知识浅陋,缺乏远见,难当重任,所以仍然求见了姬同。他首先问姬同决定与齐交战的根据条件是什么?姬同以衣食不敢自专,必以分人;祭神不敢欺骗,必以诚心回答。曹刿认为这些无法使全体民众受益的小恩小惠,不可能激起民众为君死战的热情,不谎报祭祀礼品数字的小恩小惠,也难以感动上帝降福赐予力量。姬同又提出:自己对诉讼之类的事,虽无明察秋毫的能力,但总是根据具体情况,尽心慎重地处理,使其尽可能公平合理。曹刿说:国君心有臣民,肯尽心治理国务,即使才智不高,民众也会支持,肯于为君力战。这样就有条件与齐决战了。他请求跟随鲁军一起出战。姬同让曹刿与自己同车出发,迎战齐军于长勺。
再来看《左传》所记的长勺之战,战斗过程和曹刿所起的作用,就比较清楚了。当齐、鲁两军列阵完毕后,鲁庄公即按照一般作战惯例,准备击鼓下令,指挥鲁军前进接敌,为曹刿劝止。齐军两次击鼓前进,鲁军都采取守势,坚坐于原地不动。直到齐军第三次击鼓后开始向鲁军冲锋时,曹刿认为时机已到,才请鲁庄公击鼓下令,向齐军发起反击。经过短时间的交锋,齐军大败退走。
齐军开始后退时,鲁庄公就准备下令追击,曹刿认为不可轻率,下车认真观察了齐军后退的战车车轮痕迹,再登车站在车前的扶手横木上,望了齐军的旗帜,根据齐军“辙乱”、“旗靡”的情况,判断齐军确是真败无诈,才请鲁庄公下令实施战场外的追击,将齐军赶出国境。
鲁军虽然获得了胜利,但身为统帅、担任作战指挥的鲁庄公,并没有理解曹刿的作战指导,他问曹刿为何采用这种战术?曹刿解释说:“夫战,勇气也。一鼓作气,再而衰,三而竭。彼竭我盈,故克之。”又解释慎重追击的原因说:“夫大国,难测也。惧有伏焉。吾视其辙乱,望其旗靡,故逐之。”