在遭遇崤之战的惨败后,秦人痛定思痛,下决心血洗前耻。公室一方面采取强力手段发展军力,一方面大幅度地改变了外交政策。
秦军总司令(左庶长)由百里视担任。当年百里奚被任命为大夫之时,百里视只是山野之中一个默默无闻的猎户,他以自己的勇敢和勤劳养活老母妻儿。百里奚找到家人后,就把百里视送进城防卫队。百里视从一名普通士兵干起,凭借自己的顽强精神和精湛的箭术屡立战功,一直升到五百夫长的高位。百里奚告老后,秦穆公就使百里视继承了父亲的爵位。
国家外交事务的负责人由公孙枝担任。公孙枝多年前就提出了“华可为敌,戎可为友”的观点,可是秦穆公只采纳了前一句,却摒弃了后一句。崤之战惨败后,秦国将晋国列为头号敌人;秦穆公这才接受了公孙枝的全部观点,决定联合戎狄打击晋国,便向秦国的宿敌(白狄)伸出了橄榄枝。
晋文公在世时,他一面以恩泽天下的态度安抚白狄,一面又设置三行步兵以威胁白狄。当白狄已经表示屈服、而晋人又认为应当将主要精力放在秦楚身上时,晋文公就撤销了三行步兵,并建立了两支新军。这样一来,白狄便感觉自身压力徒然减轻了很多。
晋文公去世后,白狄的远亲、盘踞在黄河中下游的北狄率先发难(对齐国发动进攻)。这是一个危险的信号,预示着北方民族在灭亡邢卫三十年后、再次开始对中原发动大规模入侵。
白狄不愿居于北狄之后,开始讨论伐晋议题,但是他们感觉取得胜利的希望不大。正在这时,秦国使者从天而降,表示秦国可以为他们进攻晋国尽可能提供帮助。然后两国就签订了一个盟约。
不久,秦人按约定运来大量武器和甲胄(白狄武器落后,而且普通士兵也没有财力置办甲胄),白狄就把军队集结起来准备伐晋了。
八月初,河西的白狄军队渡过黄河,与河东军合并一处,然后攻陷并焚毁了箕城。狄人由于忙着在箕城干坏事而耽搁了几天,正当白狄重新集结起军队准备继续进发时,却发现晋军和姜氏戎的辅助部队已经在不远处严阵以待了。
白狄严重低估了晋军的反应速度。原来晋惠公改革土地制和兵役制以后,晋国形成了几乎全民皆兵的态势,集结兵力的速度大幅提高。而且对于一些规模不大的战事,晋人不需要从都城征调军队,而只需在边邑附近征兵并向该地派出指挥官就可以了。
晋国是续楚国之后第二个建立这种机制的国家(楚国对中原国家开战,则主要征发申、息子弟)。
再者,从晋文公开始,晋君不再谋求对军队的绝对控制,而是将军权下放到卿大夫一级(这方面也是从楚国那学来的);所以无论君主遇到何种原因不能出战,还是国家处于大丧之中,晋国的军事机器依然运转如常。
白狄认识到自己对晋国产生了误判,思想上突然产生了巨大的压力;但是当看到晋军人数少于自己时,自信心便又回到了他们的身边。白狄子就怀着矛盾纠结的心情准备与晋军开战。
在晋军方面,有两位人物的行为对本次战事结果产生了重大影响。
第一位是先轸。自从上次对着晋襄公吐口水开始,先轸就对自己的粗俗无礼感到后悔;由于晋襄公没有对他进行任何惩罚,先轸的负罪感就更加沉重了。
大战前夜,先轸对儿子先且居说:“老夫在君侯面前逞匹夫之志。君侯仁厚,宁肯伤及颜面,也不忍处罚老夫,以至于国人都说君侯就是个‘绣花枕头’。但是我怎么能为侥幸逃脱惩罚而感到庆幸?明日一战,我将以死向君侯谢罪。敌人倍于我军,而且士气正盛;只有用我的死亡才能激发晋军将士最大的斗志。”