相模国の北条氏は、3代目当主・氏康の存命中は越後国の上杉謙信、さらに三河・遠江の徳川家康と同盟を結んでいた。ちょうど甲斐国の武田信玄を三方から囲むような形を作り上げていたのである。ところが元亀2年(1571)冬、北条氏は突然に上杉氏と断ち、信玄と同盟を結ぶことになった。これは隠居してもなお影響力の大きかった氏康が10月に没し、名実共に当主となった氏政の発言権が増大したためであろう。この同盟締結には、氏政の正室が信玄の娘という経緯から氏政は親武田派だったという背景がある。老獪な信玄は北条氏と同盟することで、包囲網を大きく破ることに成功したのであった。
この北条氏との同盟締結により背後を衝かれる心配のなくなった信玄は、かねてよりの念願だった遠江を手中にすべく元亀3年(1572)10月3日、甲府を出発した。このとき率いた軍勢は2万5千といわれる。この大軍が信濃国の高遠から飯田、さらに青崩峠および兵越峠を越えて遠江国に侵入したのである。
前々年の元亀元年(1570)にようやく浜松城を居城とした徳川家康の勢力は、最大動員してもせいぜいが8千であった。家康は信玄の出陣を知るとすぐに同盟者の織田信長より援兵を派遣してもらったが、その兵も3千ほどで、徳川・織田両軍の兵をもってしても武田方の半分にも満たない兵力であった。信長の方でもあちこちに出兵しており、その状況下では3千を捻出するのが精いっぱいだったのである。
領内には二俣城や高天神城など、武田勢との接点となっている城もかなりあり、総勢の1万1千すべてを浜松城に集結させるわけにはいかなかったのである。家康ははじめから浜松城に籠城するつもりだった。籠城が長引けば、そのうちに信長が後詰として出馬し、信玄を挟撃できると考えていたのである。さらに、年が明けて雪が解ければ越後の上杉謙信も甲斐国を窺うであろうという期待も持っていただろう。
10月12日、徳川方の支城・只来城が攻め落とされ、とうとう両軍の戦いとなった。信玄は馬場信房らに兵をつけて天竜川左岸より浜松方面を押さえさせたうえで自らは二俣城攻めに向かい、城攻めを始めた。ところが鎧袖一触と思われていたこの二俣城が容易に落ちず、ついに信玄は天竜川の上流から筏を流し、城の水の手を断ち、ようやく開城に追い込んでいる。城将・中根正照らが降参してきたのは12月19日のことであった。その後いったん二俣城に集結した武田軍は、浜松城に向けて進撃を開始した。
12月22日、信玄の本隊は合代島のすぐ南の神増あたりで天竜川を渡り、浜松城へと向かう気配を見せた。ところが有玉あたりで急に進路を変えると西に向かいはじめ、そのまま三方ヶ原の台地に上がってしまったのである。はじめから信玄の方は浜松城を攻める意思はなかったようである。病魔に侵されはじめていた信玄にとって、時間を要する城攻めは得策ではなかった。そこで家康の軍勢をおびき出し、野戦で一気に方をつけようと考えたのである。
籠城の態勢を取っていた徳川軍は、武田軍が浜松城に見向きもしないで素通りしていったことで焦った。相手にされなかったということは、武士としての面目を潰されたも同じことである。それが信玄の策略であるということを考える余裕もなく、すぐ追撃に転じたのである。
家康にしてみれば、敵は2万5千で味方は1万1千であるが、三方ヶ原を過ぎればその先には祝田という坂があるので、そこを過ぎてから襲い掛かれば坂の上から攻め落とせる形になるので勝算有り、と見込んだのであろう。ところが、信玄は祝田の坂にかかる手前で全軍を停止、そのまま後ろ向きになったのである。つまり、家康は浜松城からまんまと引っ張り出されてしまったのである。
武田軍の先陣は小山田信茂と山県昌景、第二陣は武田勝頼と馬場信房、三陣が信玄率いる本隊で、後陣が穴山信君という布陣であった。戦いは午後5時頃から始められた。小山田信茂の3千の兵と石川数正率いる1千2百の兵との戦いが口火となり、すぐさま全面展開となった。
旧暦の12月22日の午後5時というと、すでに薄暗さが近づいている時間である。戦いの開始は夕方であっても、合戦そのものは夜戦であった。
武田軍は密集突撃型の魚鱗の陣形を組み、それに対する徳川軍は展開包囲型の鶴翼の陣形で攻めた。しかし兵数の差がありすぎたため、武田軍を押し包むことができなかったという。合戦は信玄の思惑通りに展開し、2倍以上の兵力を持つ武田軍が押し気味に戦いを進め、ついに徳川方は浜松城を目指して敗走を始めた。徳川方の完敗であった。このとき家康は、緊張と恐怖のあまりに馬上で脱糞したことにも気付かないままに浜松城に逃げ帰ったという。
命からがら逃げ帰った家康は、城門を開け放ち、明々と篝火を焚かせた。城門を閉じてしまえば逃げ込んでくる兵を収容できなくなってしまうからだが、武田方ではこの所作を何か計略があってのことと警戒し、ついに浜松城を攻めなかったのである。
この合戦で、信長からの援兵の将・平手汎秀は戦死、徳川方の犠牲者は1千人を超えたという。また武田方でも、徳川軍を追撃して浜松城近くまで迫ったとき、犀ヶ崖という断崖から落ちるものが多数あったという。
なお、この合戦の最中、敗走する途中に家康の身代わりとなって死んでいった武将の名前が伝えられている。一人は夏目次郎左衛門吉信で、家康の名を自ら名乗ることで武田勢を引きつけておき、その間に家康を逃がしたという。また、家康の着ていた朱色の鎧が敵に目立つからと言って自分の鎧と着せ替え家康を逃がした松井忠次、敗走途中に家康の采配(軍配)を強引に奪って、家康の身代わりをつとめた鈴木三郎という侍もあった。これら三河武士の固い忠誠心によって、家康は命拾いできたのであった。