国鉄の労働組合である国鉄労働組合(国労)と国鉄動力車労働組合(動労)は毎年、激しい闘争を繰り広げていた。公共企業体である国鉄にはストライキが認められていなかったため、ストの代替手段として編み出されたのが「順法闘争(順法スト)」だ(違法ストも行われた)。
順法闘争の仕組みは単純だ。列車の運行は多数の規程、規則に従って行われる。これらを過剰に適用することで停車、減速、安全確認といった形で列車をまともに運行しないのである。ストではない形で鉄道を機能不全に陥らせる、サボタージュの一種である。国労と動労はこの闘争を通じて、スト権獲得、合理化反対、処分撤回、ベースアップなどを求めた。
50年前、高崎線の運行本数は非常に少なかった。1968年10月の時刻表を開いてみると、上尾駅を7時台に発車する普通列車は7本。現在はコロナで減便されたとはいえ倍近い13本。6~8時台で見ても17本に対し、28本だ。
利用者が少なかったわけではない。鉄道整備が進んでいなかったため、1路線あたりの利用者はむしろ今より多く、混雑率は250%にも達した。
列車が遅れるとその分、駅ホームに乗客が滞留して混雑が悪化する。混雑すると乗車に時間がかかるため列車が遅れるという悪循環だ。順法闘争は朝ラッシュに大混乱をもたらすには十分すぎた。
3月5日から始まった順法闘争で既に不満は爆発寸前だった。当時、ストによる運休は珍しいものではなく、就業規則でスト時の出勤免除を定めている会社もあったが、順法闘争時はあくまで「通常運行」なので、遅れて混雑した電車で出勤しなければならないという不満もあったという。
上尾事件を受けて、国労と動労は順法闘争をいったん中止するが、その後ベースアップ交渉が始まると、国労と動労は4月16、17日に順法闘争を行い、全国的にダイヤがマヒした。
そして24日、国労と動労は順法闘争に入り、またも首都圏各線が大きく乱れた。度重なる順法闘争に乗客は再び怒りを爆発させる。同日夜、大きく遅れて到着した下り列車が超満員で乗り込めなかったことで赤羽駅の乗客が暴徒と化し、停車中の列車を破壊した。
この騒ぎが都心にも波及していく。上野駅や新宿駅でも設備の破壊や投石、窃盗、放火が行われるなど、最終的に首都圏の計38駅で騒乱状態となった。順法闘争は一時休止されたものの、車両や設備が暴動で破壊されたため翌25日朝の列車はまともに動かなかった。