План генерала Ли о вторжении на Север был одобрен, и 15 июня части его армии вошли в Пенсильванию. Ли подготовился основательно: армия Юга насчитывала более семидесяти семи тысяч человек и около двухсот семидесяти орудий. В Вашингтоне, осознавая опасность удара южан – а генерал Ли к тому времени зарекомендовал себя как талантливый полководец, не прощавший врагу ошибок на поле боя – озаботились всерьез. Линкольн приказал командующему Потомакской армией Севера генералу Хукеру отойти к Вашингтону чтобы можно было блокировать движение Ли. Хукер нехотя подчинился, но из упрямства продолжал предпринимать свои действия, несогласованные с правительством. Это стоило ему места. Линкольн, по-видимому, устав от капризных генералов от политики, назначил на его место генерала Джорджа Мида.
Тем временем, генерал Ли продолжал движение по Пенсильвании, наметив целью небольшой городок Геттисберг. Геттисберг являлся перекрестком нескольких дорог, и стратегически был очень выгоден тому, кто его удерживает. Ли назначил встречу своих трех корпусов в районе Геттисберга на начало июля. Кавалерия южан под командованием генерала Джеймса Стюарта в этот момент находилась в рейде по тылам янки. Ли еще в середине июня приказал Стюарту совершить разведывательный рейд с целью уточнения позиций северян, и затем расположиться на правом фланге корпуса под командованием генерала Ричарда Юэлла. Стюарт, однако, излишне увлекся, в результате чего присоединился к Ли только вечером 2 июля, когда битва была уже в самом разгаре. Тем самым он лишил генерала Ли главного – информации и поддержки кавалерии в самые критические дни Геттисбергской кампании.
К 28 июня армия южан оккупировала несколько городов Пенсильвании. В тот же день Ли получил донесение от шпиона Джеймса Харрисона о том, что федералы концентрируют силы в тридцати милях от Геттисберга. В случае их движения на Запад, они могли перерезать коммуникации снабжения генерала Ли. И генерал отдал приказ о перегруппировке, чтобы обезопасить свои коммуникации.
Армия федералов под командованием Джорджа Мида двигалась широким фронтом на запад. Генерал рассчитывал встретиться с армией Ли на выгодных для себя условиях. Опытный военачальник, Мид перенес основное направление движения на левый фланг и начал постепенно подвигать остальные части в направлении Геттисберга. 30 июня кавалерийская дивизия генерала Джона Бьюфорда вошла в город Командир корпуса южан Хилл приказал дивизиям Генри Хета и Уильяма Пендера 1 июля выступить на Геттисберг. Предполагалось выбить оттуда кавалерию северян, но не вступать в бой с пехотными частями. Ли не хотел устраивать большой битвы, поскольку он не закончил перегруппировку своих войск. Федералы также планировали подвести войска к Геттисбергу к 1 июля. Таким образом, поле битвы было подготовлено.
Первая стычка произошла в половине шестого утра, когда авангард дивизии Хета был обстрелян часовыми дивизии Бюфорда. Продолжив движение, Хет наткнулся на спешившихся кавалеристов в двух милях к западу от Геттисберга. Полагая, что перед ним федеральная пехота, Хет выделил две бригады для наступления. Между 10.30 и 11 часами утра дивизия Хета атаковала дивизию генерала Джеймса Уодсворта. Атака была проведена неудачно, Хет потерял несколько сот человек и упустил возможность с ходу захватить Геттисберг. Федералы потеряли генерала Рейнольдса, который был убит в начале боя. Однако они выиграли время и получили возможность организовать оборону.
В это время на поле боя прибыл генерал Ли, который попытался взять ситуацию под контроль и предотвратить превращение битвы в хаотичную свалку. Он разрешил дивизии Хета выступить совместно с дивизией Родса. Соединившись с Родсом, Хету удалось выбить северян с их позиций на западной стороне Геттисберга. Янки отступили в беспорядке, оставив Геттисберг. Отступившие федералы заняли Семетери-Хилл – Кладбищенский Холм, возвышавшийся за южной окраиной Геттисберга и были срочно реорганизованы.
В первый день боя из сорока двух тысяч участников сражения северяне потеряли девять тысяч человек, южане – от шести до восьми тысяч. Но, хотя в тактическом плане южане одержали победу, стратегически они проиграли. Федеральные войска использовали преимущества местности, выбранной ими, и сумели организовать оборону.
Утром следующего дня битва возобновилась. Ли разработал следующий план: дивизии Джона Худа и Лафайета Мак-Лоуза из корпуса Лонгстрита совершают скрытый марш и занимают позицию за Семинарским Хребтом, откуда и атакуют незащищенный левый фланг северян. В поддержку им придавалась дивизия Ричарда Андерсона. В штабе Ли предполагали, что три этих дивизии, числом в 20 тысяч солдат сокрушат левый фланг северян и, таким образом, выйдут в тыл янки.
Однако Ли не мог предполагать, что ему противостояла почти вся Потомакская армия. Миду удалось привести в расположение свою армию форсированным маршем. Опытный генерал тщательно расположил подошедшую армию. Левый фланг находился не на Кладбищенском Хребте, а на холме Малый Раунд Топ. Мид поручил оборону этого участка генералу Сайклзу. Последний, однако, на свой страх и риск выдвинул целый корпус на четверть мили вперед по отношению к общей линии федеральных войск.
Лонгстрит понял, что Сайклз атаки не ожидает, и, развернув свой корпус, отдал приказ к атаке. В 3 часа дня началась артподготовка конфедератов, и через полчаса выступила пехота Худа и Мак-Лоуза. Генерал Уоррен, начальник инженерной службы армии Мида, получив известие о том, что Малый Раунд Топ никем не защищен, моментально сообразил, в чем дело и послал пехотинцев из пятого корпуса на защиту холма. Федералы еле успели занять позиции на вершине холма, как на них обрушился удар южан.
Бой был жесток, и чаша победы склонялась то в одну, то в другую сторону, но, в конце концов, конфедераты были отброшены. Однако на других участках фронта северяне дрогнули и в беспорядке отступили. Только срочно переброшенная дивизия двенадцатого корпуса и подошедший в это же время шестой корпус смогли стабилизировать ситуацию и приостановить наступление южан.
На левом фланге армии генерала Ли две бригады из дивизии Эрли попытались взять штурмом Кладбищенский Холм. Части под командованием Джонсона заняли оставленные федералами укрепления на южном склоне холма, но вершину, которую удерживала ньюйоркская бригада, взять так и не смогли. Эрли преуспел более. Обратив в бегство полки одиннадцатого корпуса, он захватил несколько орудий, но не сумел закрепить успех. Перегруппировавшись, северяне вскоре выбили конфедератов с вершины холма. Этот бой завершил второй день Геттисбергского сражения. Потери с обеих сторон составили шестнадцать с половиной тысяч человек. Несмотря на не всегда удачные для южан события второго дня, уверенность Ли в благоприятном исходе дела осталась непоколебимой. Он не изменил генерального плана сражения. Однако этим планам не дано было воплотиться в жизнь. Мид перехватил инициативу и контратаковал. При таких обстоятельствах продолжать заранее подготовленную операцию было бы невозможно, и Ли изменил план. Он решил произвести массированную фронтальную атаку на центр обороны северян на Кладбищенском Хребте. Это был дерзкий и смелый замысел, но в нем таился огромный риск. Лонгстрит, которому Ли поручил руководство атакой, воспротивился. Ли, однако, намеревался претворить данный план в жизнь и настоял на своем.
В 13 часов 3 июля орудия южан открыли огонь. Им ответило около сотни пушек янки. Так началась одна из самых больших артиллерийских дуэлей Гражданской войны. После полутора часов интенсивного огня, федеральная артиллерия прекратила стрельбу, решив поберечь боеприпасы. Южане продолжали обстрел до 15 часов, полностью истощив свои запасы.
Практически сразу же после окончания артподготовки пехота конфедератов пришла в движение. Боевой порядок был растянут на расстояние мили. В этот момент успевшая перегруппироваться артиллерия северян открыла огонь по наступающим, нанеся им серьезный урон, но остановить продвижение пехоты не смогла. По мере приближения южан северяне сменили ядра на картечь и открыли интенсивный ружейный огонь. Конфедераты начали погибать десятками. Мид бросил в бой резерв пехоты, которая обрушилась на фланги наступавших, внеся хаос в их боевые порядки.
Лишь небольшому числу наступавших, в основном, из дивизии Пиккета, удалось прорваться на позиции янки, но закрепить успех они не смогли, по причине явного превосходства федералов, и были отброшены. К 16 часам атака закончилась с огромными потерями для наступавших: южане потеряли шесть тысяч человек.
На других участках сражения ситуация была не лучше. Джонсон был вынужден сдать Холм Калп, понеся при этом значительный урон в живой силе. Рейд Джеба Стюарта также не принес успеха. Разведка северян засекла марш кавалеристов, и несколько мощных кавалерийских частей блокировали движение южан на восток. Таким образом, кавалерия конфедератов не смогла выполнить своей задачи.