5月31日,南北两军的骑兵部队继续在老教堂对峙。李将军派出菲茨休·李少将率领的一个骑兵师增援巴特勒并确保旧冷港的十字路口;同时他并命令安德森的第一军从托托波托莫伊河向右移动以支援骑兵。霍克师的先头旅也到达了十字路口,与巴特勒和菲茨休·李会合。 下午 4 点,北军托伯特和格雷格的骑兵师将南军从旧冷港十字路口赶走,并开始挖掘工事。然而随着南军霍克和安德森的部队不断涌入,北军骑兵指挥官谢里登少将开始担心并命令托伯特向老教堂撤退。 格兰特继续对旧冷港感兴趣,认为这是史密斯援军抵达的途径。他命令赖特的第六军从位于托托波托莫伊河的北军右翼向旧冷港十字路口移动,同时命令谢里登返回十字路口并“不惜一切代价“确保其安全。 凌晨 1 点,托伯特回来了。他松了口气,因为南方军没有注意到他之前的撤退。
李将军计划在第二天(6月1日)早上使用他新集中起来的步兵对付旧冷港的北军骑兵部队。但他的部下没有正确协调。 安德森没有将霍克的师纳入他的进攻计划;而霍克误以为在第一军顺利发动进攻之前,他不能发起进攻。北军方面,赖特的第六军直到5月31日午夜过后才出发并需要行军 15 英里;史密斯的第十八军也被错误地派往几英里外帕蒙基河上的纽卡斯尔渡口,并没有及时到达旧冷港协助托伯特。
6月1日早上,安德森第一军的进攻协调不力,被北方骑兵的猛烈火力击退。 上午 9 点,赖特第六军的先头部队抵达旧冷港十字路口,但赖特决定推迟格兰特的进攻计划以等待史密斯的第 18 军到来。下午,史密斯的部队抵达并在第 6 军的右侧构筑工事。 下午 6:30, 格兰特原计划上午发动的进攻终于开始了。赖特的部队在梅卡尼克斯维尔路(Mechanicsville Road)以南几乎没有进展,最后因为猛烈的炮火而后退。该 路以北,埃默里·厄普顿准将(Brig. Gen. Emory Upton's)的旅也遭到了南军托马斯·L·克林曼(Brig. Gen. Thomas L. Clingman's)旅的猛烈射击而撤回了起点。在厄普顿的右侧,威廉·S·特鲁克斯上校(Col. William S. Truex)的旅通过一片沼泽密布、灌木丛生的峡谷,在南军战线的中部发现了一个缺口。 当特鲁克斯的人马冲过缺口时,克林曼调动两个团来应对他们。安德森也从预备队里面抽调了埃帕·亨顿准将(Brig. Gen. Eppa Hunton's)的旅来支援。 特鲁克斯旅三面被围,被迫撤退。
当战场南端的战斗持续进行时,北军汉考克、伯恩赛德和沃伦三个军团占据了一条向东南延伸至贝塞斯达教堂(Bethesda Church)的长达 5 英里的防线,与南军的A.P. 希尔、布雷肯里奇和厄尔利军团对峙。 在伯恩赛德第九军和沃伦第五军之间的交界,厄尔利军的两个师:罗伯特·E·罗德斯 (Robert E. Rodes)师在左边,约翰·B·戈登 (John B. Gordon)师在右边,于晚上 7 点发动试探性攻击。尽管取得了一些初步成功,两次攻击均被击退。
虽然 6 月 1 日的攻击没有成功,米德仍然乐观地认为南军此时已经疲于应对。如果他能够在适当的地点集结足够的兵力,那么 6 月 2 日早些时候的进攻可能会成功。 他和格兰特决定瞄准李将军位于旧冷港的右翼。 米德命令汉考克的第二军从托托波托莫伊河向东南转移,并占据赖特第六军左侧的位置。 一旦汉考克就位,米德就会从旧冷港发动攻击。北军用于进攻的三个军(汉考克的第二军、赖特的第六军和鲍尔迪·史密斯的第十八军)总计有 31000 人。 米德还命令沃伦的第五军和伯恩赛德的第九军在早上“不计一切危险”攻击李将军的左翼,以防止李将军从南军左翼调动部队来加固右翼。
汉考克的部队几乎整夜行军,到达阵地时已经疲惫不堪,无法在当天早上立即发起进攻。 格兰特同意让士兵们休息,并将攻击推迟到下午 5 点,然后又进一步推迟到 6 月 3 日凌晨 4 点 30 分。但是格兰特和米德没有下达具体的攻击命令,而是由军级指挥官们自行决定攻击地点,以及他们将如何相互协调。所有的高级指挥官都没有侦察过敌方阵地。
李将军利用北军的延误加强了防御:当汉考克离开托托波托莫伊河的阵地时,李将军也将布雷肯里奇的师转移到自己的最右翼;他还从 A. P. Hill 的第三军抽调部队,包括威廉·马洪(Brig. Gen. William Mahone)师和卡德摩斯·M·威尔考克斯(Brig. Gen. Cadmus M. Wilcox)师,前来支援布雷肯里奇;并命令菲茨休·李麾下的骑兵守卫南军的右翼。最终南军沿着低矮的山脊形成了一条长 7 英里的弯曲防线,左翼锚定在托托波托莫伊河(Totopotomoy Creek)上,右翼锚定在奇卡霍米尼河(Chickahominy River)上,使得任何侧翼行动都变得不可能。 李将军的工程师们有效地利用了他们的时间,建造了“战争中迄今为止最巧妙的防御配置”。
6月3日凌晨4时30分,北军三个军团开始在浓雾中前进。 南军的猛烈炮火很快造成了重大的人员伤亡,幸存士兵则被压制。 当天表现最出色的是北军左翼的汉考克第二军,他们突破了布雷肯里奇防线的一部分,并在肉搏战中将守军赶出了工事。 然而,附近的南军炮兵将这些工事变成了北军的死亡陷阱。 布雷肯里奇的预备队对这个来自弗朗西斯·C·巴洛准将(Brig. Gen. Francis C. Barlow)的师进行了反击并将他们赶走。 汉考克的另一个由约翰·吉本准将(Brig. Gen. John Gibbon)指挥的师在沼泽地里陷入混乱,无法在南军的猛烈炮火中前进。 吉本的一名手下抱怨缺乏侦察,他写道:“我们认为这是谋杀,而不是战争,或者至少是犯了一个非常严重的错误。”
在中部地区,赖特的第六军仍未从 6 月 1 日代价高昂的冲锋中恢复过来。他们在南军猛烈的火力压制下几乎没有任何推进。在北军右翼,史密斯的部队穿过不利的地形前进,并被引导到两个峡谷中。 当他们出现在南军防线前时,步枪和大炮的火力将他们击倒。史密斯军面对的炮火比预期的要猛烈,这是因为他们右侧的沃伦第五军不愿前进,从而使得沃伦防区内的南军炮兵也集中攻击史密斯的部队。
战场北端唯一的活动是伯恩赛德的第九军。他于早上 6 点向当面的南军朱巴尔·厄尔利(Jubal Early)第二军发动了一次强大的攻击,压垮了南军的散兵。然而伯恩赛德错误地认为自己已经穿透了第一道防御工事,于是命令他的部队停止进攻并重新集结,并计划在当天下午继续前进。
早上 7 点,格兰特建议米德积极利用袭击中任何成功的部分。 米德命令他左翼的三个军立即发起攻击,不必顾及邻近军团的动向。 但所有人都已经受够了: 汉考克建议反对此举;史密斯称再次发动袭击是“肆意浪费生命”,并拒绝再次前进;赖特的手下增加了步枪火力,但仍留在原地。 中午 12:30 之前,格兰特承认他的军队已经完蛋了。 他写信给米德:“军级指挥官们认为,如果下令发起进攻,他们对成功并不抱有希望。因此您可以指示暂时停止进一步推进。” 据估计,此时北军的伤亡人数为 3000 至 7000 人,而南军的伤亡人数不超过 1500 人。
格兰特和米德决定不再对冷港的南军防线发起攻击。两军又在接下来的堑壕战中对峙了九天,有些地方相距仅数米。 战壕里炎热、尘土飞扬、环境恶劣,但战线之间的地带情况更糟。数千名受伤的北军士兵在没有食物、水或医疗援助的情况下遭受着可怕的痛苦。 格兰特不愿意请求正式休战以便抢救伤员,因为这将意味着他承认自己输掉了这场战斗。 从6月5日到6月7日,他和李将军跨越战线交换书面意见,但没有达成协议。当格兰特最终正式要求停止敌对行动两小时时,对于大多数不幸的伤员来说已经太晚了,他们现在已经成了浮肿的尸体。 格兰特因这一判断失误而受到了北方媒体的广泛批评。
冷港战役是李将军的北弗吉尼亚军团在战争期间取得的最后一场重大胜利。就伤亡而言,此役也是该军团最具决定性的一场胜利。 北军在 12 天的徒劳进攻中损失了 10000 至 13000 人。自 5 月初整场战役开始以来,北军的伤亡人数总计已经超过 52000 人,而南军的伤亡人数为 33000 人。战斗的失利沉重打击了北军剩余部队的士气。格兰特则因其错误的决定而被称为 “笨手笨脚的屠夫” 。在后来的个人回忆录中,他写道: “我终生都在为冷港的最后攻击行动感到遗憾。”