この戦いは、東北版の関ヶ原の合戦ともいえる。
慶長5年(1600)年の春、再三の上洛要請に応じようとしない陸奥国会津の上杉景勝を、徳川家康が豊臣秀頼の名代として征伐に向かった(会津上杉征伐)。家康は陸奥・出羽国の諸将にも対上杉氏への参戦を命じ、自らも諸大名の軍勢を率いて会津へと進発したが、7月下旬に石田三成らが近畿地方において挙兵したとの報を得ると、下野国小山での評定を経て、上杉征伐を中止して軍勢を西に転じた。
このとき家康がもっとも危惧したのは、奥羽随一の国力を誇る上杉勢の追撃であったといわれる。最悪の場合には石田勢と上杉勢の挟撃に遭うことも考えられ、家康はそれを防ぐため、下野国宇都宮の結城氏や奥羽の諸将に上杉勢の牽制もしくは攻撃を命じたうえで、さしあたっては本城の武蔵国江戸へと軍勢を返している。
これに先立って上杉領の白石城を落としていた陸奥国岩出山城主・伊達政宗は、家康の作戦変更を知ると8月14日に上杉氏と和睦して北目城に戻り、他の奥羽諸将もそれぞれ兵を退かせて帰国した。上杉征伐においては最上口から進撃する軍勢の大将に任じられていた出羽国山形城主・最上義光も上杉氏の逆襲を恐れ、8月18日付で降伏宣言にも等しい書状を送って攻撃の回避を申し入れ、上杉氏の家宰・直江兼続も徳川軍を追撃することを進言したが、景勝はこれを容れず、直江兼続に命じて最上氏を攻めさせたのである。これは、当時の上杉氏の所領は陸奥国会津・出羽国庄内地方・佐渡国に加えて直江兼続の領す出羽国米沢であったが、離島の佐渡国は別としても、庄内の地が最上領に扼されて飛び地となっており、まずは最上領を制圧して所領を一体化したうえで徳川勢との対決に臨もうとしたものと思われる。
上杉勢は米沢方面からと庄内方面から山形城めがけて侵攻を開始。主力の直江兼続率いる2万余の軍勢は9月8日に米沢を発向し、13日には猛攻を加えて山形城西方の畑谷城を陥落させた。ついで長谷堂城への攻撃を開始したのが、美濃国で徳川方と石田方による主力決戦(関ヶ原の合戦)が行われたのと同じ9月15日のことであった。しかし、山形城の一支城でありながらも志村光安の守る長谷堂城は、大兵を擁する上杉勢の攻撃を耐え忍び、よく持ち堪えていた。
その間にも上杉氏武将の志駄義秀・下吉忠ら率いる庄内からの軍勢は山形城の北方に位置する白岩・谷地・寒河江などの諸城を攻め落とし、山形城へと迫りつつあった。さらには、この上杉氏優勢の戦況に乗じて出羽国横手城の小野寺義道も最上領への侵攻を目論んでいた。
上杉勢の攻勢に窮した最上義光はこの日の夜に嫡子・義康を派遣して伊達政宗に援軍を求めているが、中央の政局では関ヶ原の合戦で徳川方が勝利しており、大勢は決していた。しかし東北地方にはその情報は未だ伝わっていない。
義康からの懇請を受けた政宗は即答せず、まずは重臣らと評議に及んだ。このとき、このまま最上と上杉を戦わせたうえで「漁夫の利」を得ようとする意見もあったようだが、政宗は、一つには徳川家康公のため、いま一つには実家の山形城に戻っている母(政宗の母は最上義光の妹)のためとして援軍派兵を決め、留守政景に出陣を命じた。この援軍は20日頃には笹谷峠に布陣し、上杉勢を牽制した。
この伊達勢の支援もあって、最上勢は西は長谷堂城、南は上山城を防衛線として上杉勢の攻勢を支えていた。そして9月30日、政宗宛に家康からの美濃国関ヶ原での勝報が届く。この知らせは同日の夜に山形城にも伝えられ、城内では活気づいたことであろう。一方の上杉方では、この情報を伊達側よりも早い29日に得ており、すでに撤退命令が下されていた。しかし兼続は直ちに撤退はせずに軍勢を未だ布陣させておき、その間に軍路の整備など、撤退の準備を進めていたのである。
そして10月1日の朝、上杉勢は陣に火を放って狐越街道より米沢へ向けて撤退を開始し、これを見た最上勢も追撃のために打って出る。兼続は街道沿いの富上山の中腹に水原親憲率いる3百の鉄砲隊を殿軍として置いて追撃する最上勢を食い止めさせたが、兵を退かせながらの応戦は困難で、先に畑谷城まで進んでいた兼続は味方の苦戦を聞いて富上山に戻って夜まで防戦を支援したのち、闇に紛れて引き上げたという。
最上勢の反撃はこの山形城付近だけではなく、上杉勢に制圧されていた寒河江・白岩・左沢・谷地などでも行われ、2日の朝までには上杉勢を領内からほぼ追い落すことに成功したのである。