Yuan Shaos hovedhær nærmet seg, med opptil 110 000 soldater, inkludert 10 000 kavalerister. Ju Shou merka at Caos hær allerede hadde lite mat. Han foreslo nøye planlegging for å kutte Caos forsyningslinjer for å sikre en total seier. Yuan Shao stolte på sine tallmessig overlegende styrker, og ignorerte Ju Shous råd, siden det kunne komme til å forsinke seieren hans. Da Ju Shou insisterte, kastet Yuan ham i fengsel, og fortsatte angrepet. Hans general Yan Liang krysset Huang He-elva og angrep byen Baima. Xu Yun la merke til angrepet, og Cao ledet en bataljon over Yan-vadestedet, men dette var bare en skinnmanøver. Da Yuan trakk noen av troppene sine tilbake fra Baima for å møte Caos angrep, trakk Cao seg tilbake og angrep østover for å hjelpe styrkene i Baima. I det følgende slaget ble general Yan Liang drept og Yuans styrker jagd bort. Deretter gjorde Cao Cao seg klar til å forlate byen og evakuerte innbyggerne sørover. For å bruke anledningen sendte Yuan Wen Chou og Liu Bei med 6 000 lette kavalerister fra leiren for å forfølge Cao. Igjen forutså Cao motstanderens trekk, og gjorde klar en felle. Hester, utstyr og andre verdigjenstander ble lagt igjen, og, mens fiendens tropper brøt rekkene for å plyndre, ble de knust av seks hundre elitekavalerister, og Wen Chou ble drept i kaoset. Dermed hadde Yuan Shao allerede mistet to av sine generaler, og hærens moral stupte.