程把昭王在位时间定为前891年至前886年，以此推断，此战发生的时间应为前891年。周懿王在位时期，西周衰弱，戎族不断入侵周朝，一度打到镐（陕西省西安西面）、岐（陕西省岐山）等地，懿王被迫逃离镐京，迁都槐里（现今陕西省兴平县），周懿王曾派虢公率军北伐犬戎，希望收复失地，但是不幸战败，此战被称为周懿王攻犬戎之战。孝王元年（前891年），周孝王初即位后，决心振兴周朝，随即命令申侯率领大军讨伐西方犬戎。申侯打败西戎，西戎于孝王五年向周朝进贡名马。