发生战争的原因是齐襄公时,政令无常,他的弟弟公子小白和公子纠分别逃到莒国和鲁国避难。后来齐襄公被杀,住在莒国的公子小白抢先回到齐国夺得王位,称为齐桓公。后来鲁国也送公子纠回齐国争夺王位,结果被齐桓公打败,齐桓公逼鲁庄公杀掉公子纠。鲁庄公十年(前684年)齐桓公又借口鲁国曾经帮助公子纠与他争夺齐国君位,再次举兵攻鲁,两军战于鲁国长勺,结果弱小的鲁国战胜了入侵的强大的齐国。