1937年春夏,日军在卢沟桥附近加紧军事演习。7月7日上午,日军又到卢沟桥以北地区进行演习。下午,日军驻丰台的河边旅团第一联队第三大队第八中队,在中队长清水节郎带领下进至卢沟桥北面回龙庙附近,举行夜间演习。19时30分,暮色降临,日军夜间演习开始,近600人的部队迅速行动。22时40分,在宛平城东北方向突然响起了枪声。少顷,几名日军来到宛平城下,声称丢失一名士兵,无理要求进城搜查,被中国驻军守城官兵拒绝。日军立即开枪示威,卢沟桥事变爆发。日方向城内发射炮弹,城内仅营房就被炸塌6间,士兵被炸死2人、炸伤5人。
事发当晚,中日双方进行了多次交涉。2时,日方对中方答复不满,强行要派队进宛平城检查,否则包围该城。
约5时,日军已在宛平城东、东南及东北侧展开包围态势。6时许,双方派出人员到达宛平县署,日方提出无理要求,仍坚持进城搜索“失踪士兵”,中方不许。
日军第一联队第三大队主力在大队长一木清直指挥下,向回龙庙铁路桥扑来,要求在中国守军阵地搜寻“失踪士兵”,在铁路桥头遭到第十连排长中共秘密党员沈忠明的严词拒绝,日本侵略者突然开枪射击,沈忠明中弹倒地。他的牺牲,激怒了守桥士兵,两个排在李毅岑排长指挥下,不畏强敌,英勇战斗,用大刀砍、枪刺扎,同日军展开了肉搏,几乎全部牺牲。日军占领回龙庙和铁路桥东头。与此同时,日军突然以宛平城东门为主要目标炮轰宛平城,炸毁了营指挥部,造成吉星文等人受伤。
第二十九军守城将士沉着应战,奋起抵抗,进攻的日军一次次被击退。8日下午,二十九军从长辛店以北至八宝山以南同时向日军反攻,将战斗开始不久失守的铁路桥及其附近的回龙庙等处夺回。此后三日内,双方在卢沟桥铁桥和回龙庙一带进行了数次拉锯战,双方均增援部队,战事逐渐扩大。
7月11日,二十九军收复桥头堡失地,完全恢复了永定河东岸的态势,减少了宛平城侧后的威胁。
日本侵略者对中国人民抗日的决心和能力估计过低,对中国守军的坚决回击出乎意料。他们见势不利,采取缓兵之计,称失踪日兵已经寻获,向中方提出和平解决的要求,先后4次与中方进行谈判。
7月21日,日军再次炮轰宛平城、长辛店中国守军。
7月26日,日军向二十九军发出最后通牒,蛮横要求中方“驻卢沟桥及八宝山附近之第37师,促其于27日正午以前,退至长辛店,又将北平城内之第37师与西苑之该师部队,同时退往平汉路以北区域,至本月28日正午为止,须迁至永定河以西之地带,嗣后仍须将此项军队运往保定方向”,遭宋哲元断然拒绝。
7月27日,日军下令向中国军队发起总攻。28日晨,日军出动飞机数十架掩护机械化部队向北平近郊的南苑、西苑、北苑发起全线进攻,南苑战线最为惨烈。二十九军副军长佟麟阁、一三二师师长赵登禹先后壮烈殉国。
7月29日凌晨,二十九军全军撤离北平,北平沦入敌手。7月30日,卢沟桥被日军占领。