일단 전쟁을 시작하면 수단 방법을 가리지말고 무조건 이겨야한다.
군대를 이끌고 출진한 송양공은 초나라 군사를 홍수(泓水:하남성 내)에서 요격했다. 이 때 초나라는 군세가 많았고, 송나라의 군세는 그에 미치지 못했다. 하지만 마침 송나라 군대가 먼저 도착하여 강을 건너는 초나라 군대를 요격할 수 있는 유리한 상황에 놓이게 되었다. 어떤 군대라도 도하하는 도중에는 병사들의 움직임이 둔해지고, 엄폐를 할 수 없으므로 매우 무력해지기 때문에 이 때 기습하면 송나라가 매우 유리하게 이길 수 있었다.
그런데 송양공은 초나라 군대 전군이 다 강을 건널 때까지 공격하지 않았다. 공자 목이는 강을 건너는 동안에 기습하면 이길 수 있다고 송양공에게 진언했지만 송양공은 듣지 않았다.
그래도 초나라 군대는 강을 건넜지만, 아직 진형을 갖추지 못했다. 진형을 갖추지 못한 군대는 훨씬 약하므로 이 때를 노려서 공격하면 승산이 충분히 있었다. 재상 목이가 참다못해 송양공에게 진언했다. "적은 많고 아군은 적습니다. 적이 전열(戰列)을 가다듬기 전에 쳐야 하옵니다."
하지만 송양공은 듣지 않았다. 그러면서 그 이유를 다음과 같이 말했다. "군자는 어떤 경우든 남의 약점을 노리는 비겁한 짓은 해선 안되오."
결국에는 목이가 뒷목을 잡고 쓰러졌다. 양공은 초나라 군사가 전열을 다 가다듬고 진을 친 다음에야 공격 명령을 내렸다. 하지만 송나라 군대는 숫자가 적었는데 정정당당하게 싸웠으니 정정당당하게 졌다. 양공 역시 이 전투에서 중상을 입었다.
이렇게 되자 송나라에는 양공을 비난하는 소리가 가득했다. 그러자, 양공은 "군자는 사람이 어려울 때를 노리는 게 아니다."라고 변명했다.
목이는 "전쟁은 예의를 차리기 위해서가 아니라 승리하기 위해 하는 것입니다. 따라서 (전시의 법도는) 평시의 법도와는 다를 수 밖에 없습니다. (적에게 예의를 다 차려줄 거라면) 차라리 싸우기 전에 항복해주는 편이 낫지 않겠습니까?" 라고 반박했다.