春秋時期是一個戰亂紛飛的時期,齊襄公在城裡做了許多壞事,城裡危機四伏,公子小白與公子糾都想離開齊國避難,公元前686年,公子小白出跑到莒國,公子糾出跑到魯國。這一年,齊國的大臣殺死了齊襄公。又立公孫無知為國君。公元前685年,齊國的大臣又殺死了公孫無知。公子小白和公子糾都想爭奪君位,但公子小白搶在前,做了齊桓公。但是魯國仍然想派公子糾回國,不過他們多次都失敗了。後來齊國迫使魯國殺死公子糾,又以魯國參加了齊國內政,於公元前684年對魯國進攻。
這個消息傳到了魯莊公的耳朵裡,他準備全力應戰。曹劌打算進諫,在進宮的路上,他的同鄉說:「大臣們會謀劃這件事的,又關你什麼事呢?」曹劌說:「大官們目光短淺,不會深謀遠慮。」於是進宮裡問魯莊公。曹劌問:「你能憑什麼戰鬥?」莊公說:「衣食這種養生的東西,我不敢獨自享受。」曹劌回答:「這種小恩小惠不能遍及百姓,他們不會聽你的。」莊公說:「祭祀用的豬牛羊、玉帛之類,我從來不敢虛報數目,一定要做到誠實可信。」曹劌說:「這點誠意難以使人信服,神靈是不會保佑你的。」莊公說:「大大小小的案件,即使不能瞭解清楚,也要處理得合情合理。」曹劌回答說:「這是對百姓錦本職的事。可以憑這個條件打仗。那如果打起仗來。請讓我和你一起去。」
經過一些準備,魯國軍隊整裝待發了。看著對面奔來的齊國軍隊,魯莊公馬上要擊鼓進軍。曹劌急忙阻止著說:「還不行。」齊國軍隊見狀,多次打鼓。曹劌一聽,心裡有些得意,便叫莊公:「可以了。」莊公擊鼓。齊軍無心再應戰,便撤退了。魯莊公又想追擊,曹劌說:「還不行。」曹劌下車仔細看了車印,又登上車前橫木看著齊軍的旗幟。又有一股得意的心情湧上來,便與魯莊公說:「可以了。」齊軍更是嚇到丟下旗幟跑了。」
已經戰勝了,魯莊公詢問曹劌為什麼這樣做。曹劌說:「打仗是靠勇氣的。第一次擂鼓時能振作士兵的勇氣,第二次擂鼓時士氣減弱,第三次時士氣已竭盡了。敵方軍隊士氣竭盡而我方士氣正盛,所以能戰勝他們。齊國是一個大國,難以猜測,怕有埋伏。我看到他們的車印混亂,遠遠望過去旗子倒下了,他們真的敗走了,所以就下令追逐他們。」