Тем временем, генерал Стивен Кирни и Армия Запада (около 1700 американских солдат) подошли к Санта-Фе в Новой Мексике и заняли город. Кирни затем продолжил движение со значительно меньшим отрядом из 300 драгун вдоль долины реки Гила, через пустыню до Калифорнии, так, что в итоге у него осталось менее 150 человек. Генерал Кирни был дезинформирован рядом американцев, включая своего знаменитого разведчика Кита Сарсона, что калифорнийцы, в основном, трусливы и скорее побегут, чем начнут сражаться. Кирни получил известие, что Андрес Пико и его повстанцы из Южной Калифорнии были поблизости, и предвкушал свою первую настоящую битву в мексиканской войне на севере. На рассвете 6 декабря 1846 года в местечке Сан-Паскуаль генерал Кирни и Армия Запада, пополненная людьми Гиллеспи, вступила в схватку с менее чем 150 калифорнийцами. Калифорнийцы, знаменитые своим искусством верховой езды, легко превосходили американцев, накидывали на них лассо, сваливали с лошадей и волочили до смерти, либо протыкали их длинными калифорнийскими копьями. Арчибальд Гиллеспи был несколько раз ранен, также как и генерал Кирни, которого довольно болезненно укололи копьём. Из 150 американских солдат 18 были убиты и ещё 13 ранены. Битва при Сан-Паскуаль стала решающим поражением американцев, после которого они отказались от захвата Калифорнии.
16 ноября 1846 года состоялась ещё одна битва на ранчо La Natividad. Калифорнийцы под командованием Хоакина де ла Торре захватили американского консула Томаса Оливера Ларкина и удерживали его как военнопленного. Около сотни людей Фримонта, руководимые Блуфордом Томпсоном и Чарльзом Бурруа, встретили отряд из 130 калифорнийцев под командованием Мануэля де Хесуса Касто и Хоакина де ла Торре. Битва продолжалась 20 минут, в течение которых калифорнийцы убили 5 американских солдат, включая капитана Бурруа, и ранили ещё нескольких.
По прибытии в Южную Калифорнию, Стоктон соединился с морским пополнением и выиграл две небольшие битвы, в результате чего получил контроль над Сан-Диего и Лос-Анджелесом. Договор Кауэнга был подписан 13 января 1847 года между Джоном Чарльзом Фримонтом и генералом Андресом Пико и обозначил окончание конфликта на территории Калифорнии.
Поражения при Пало-Альто и русле де ла Пальмы вызвали политический беспорядок в Мексике, который Антонио Лопес де Санта-Анна использовал для возрождения своей политической карьеры и возвращения из самоизгнания на Кубе. Он пообещал американцам, что если его пропустят через блокаду, он договорится о мирном окончании войны и продаст территории Нью-Мехико и Калифорнии Соединённым Штатам. Однако, когда он прибыл в Мехико, он изменил своему слову и предложил свой военный опыт мексиканскому правительству. После того, как он был назначен генералом, он снова изменил, на этот раз собственному правительству, и захватил президентство.
Большие силы, ведомые Тейлором, пересекли Рио-Гранде (Рио-Браво) после некоторых трудностей с получением речного транспорта. Он занял город Матаморос, затем Камарго (где ждал некоторое время, так как солдаты столкнулись с первой из многочисленных болезней) и затем продолжил движение на юг и блокировал город Монтеррей. Битва за Монтеррей была весьма кровопролитной, во время нее обе стороны понесли серьёзные потери. Американская лёгкая артиллерия оказалась неэффективна против каменных укреплений города. Мексиканские войска под командованием генерала Педро де Ампудья и батальон Святого Патрика (ирландцы-католики, покинувшие американскую армию и примкнувшие к мексиканцам) сильно осложнили жизнь американским солдатам. Однако пехотное подразделение и техасские рейнджеры захватили четыре холма к западу от города и с ними тяжёлое орудие. Это придало американцам силы штурмовать город с запада и востока. Оказавшись в городе, американцы захватывали дом за домом: каждый зачищался посредством зажигательных снарядов, которые использовались в качестве примитивных гранат. В конце концов, эти действия поймали людей Ампудьи на центральной площади города, где расчехлённая гаубица заставила Ампудью начать переговоры. Тейлор согласился на то, чтобы мексиканская армия эвакуировалась и спустя 8-недельного перемирия вернулась для сдачи города. Под давлением Вашингтона Тейлор нарушил перемирие и занял город Салтильо к югу от Монтеррея. Санта-Анна возложил ответственность за потерю Монтеррея и Салтилльо на Ампудью, понизил его в должности и отправил командовать небольшим артиллерийским батальоном.
22 февраля 1847 года Санта-Анна лично отправился на север с 20-тысячным войском, чтобы сразиться с Тейлором. Тейлор окопался на горном перевале недалеко от имения Буена-Виста с 4600 солдатами. Санта-Анна страдал от дезертирства по пути на север и прибыл только с 15 тыс. уставших солдат. В ту же ночь от потребовал от американцев сдаться и получил отказ. На следующее утро Санта-Анна атаковал американские позиции с фланга, отправив свою кавалерию и некоторую часть пехоты вверх по крутому склону, из которых состоял перевал, тогда как пехотное подразделение атаковало по центру вдоль дороги, ведущей в Буена-Висту. Произошло яростное сражение, во время которого американцы были почти подавлены, но всё же спасены артиллерийским огнём капитана Брекстона Брэгга и конными миссисипскими стрелками Джефферсона Дэвиса. Потерпев обескураживающее поражение, Санта-Анна отступил следующей ночью, оставив Тейлору контроль над Северной Мексикой. Тейлор позже использовал Битву при Буена-Виста, как центральный пункт своей успешной президентской кампании 1848 года.
Тем временем, вместо усиления армии Тейлора для продолжения наступления, президент Полк отправил вторую армию под командованием Уинфилда Скотта, которого доставили морем в порт Веракруз, чтобы он начал вторжение в главные районы Мексики. Полк не доверял Тейлору, который, как он полагал, проявил некомпетентность в битве при Монтеррее, согласившись на перемирие, и кроме того мог рассматривать его как политического соперника в Белом Доме.
Скотт произвёл первое в истории США крупное десантирование при подготовке к осаде Веракрус. Отряд из 12 тыс. добровольцев и солдат успешно разгрузили припасы, оружие и лошадей недалеко от городских стен. В отряде также находились Роберт Ли и Джордж Мид. Город защищал мексиканский генерал Хуан Моралес с 3400 человек. Мортиры и военно-морские орудия (командор Мэттью Пэрри) использовались для разрушения городских стен и психологического воздействия на защитников. Город отвечал как мог своей собственной артиллерией. В результате длительный огневой вал сломил волю мексиканской стороны к сопротивлению численно превосходящему противнику, и город был сдан после 12-дневной осады. Американцы потеряли 80 человек, тогда как мексиканцы — около 180 человек убитыми и ранеными, половину из которых составляло гражданское население. Во время осады американцы начали умирать от жёлтой лихорадки.
Затем Скотт двинулся на запад в сторону Мехико с 8500 здоровых бойцов, в то время как Санта-Анна устанавливал оборонительные позиции в каньоне вокруг главной дороги на полпути к Мехико в районе деревушки Серро-Гордо. Санта-Анна расположился в окопах с 12 тыс. солдат и артиллерией, нацеленной на дорогу, вдоль которой, как ожидалось, должен пройти Скотт. Однако Скотт послал вперёд 2600 драгун, и мексиканская артиллерия преждевременно открыла огонь и раскрыла свои позиции. Вместо того, чтобы двинуться по главной дороге, войско Скотта пошло через дикую местность на север, расставляя свою артиллерию на возвышенностях и потихоньку обходя мексиканцев с фланга. Хотя к тому времени Санта-Анна был осведомлён о позициях американцев, его войско было неготово к последовавшей атаке. Мексиканская армия была разбита. Американцы потеряли 400 человек, а мексиканцы более 1000, и 3000 попало в плен.
В мае Скотт достиг Пуэблы, в то время второго по величине города Мексики. По причине враждебности жителей к Санта-Анне, город сдался без сопротивления 15 мая. Мехико оказался открыт после битвы за Чапултепек и позже был захвачен.
Договор Гуадалупе-Идальго, подписанный 2 февраля 1848 года, положил конец войне и дал США неоспоримый контроль над Техасом, а также над Калифорнией, Невадой, Ютой и частями Колорадо, Аризоны, Нью-Мехико и Вайоминга. Взамен Мексика получила 18 млн. 250 тыс. долл., что эквивалентно 627 млн. 500 тыс. долл. по курсу середины 2000-х гг. Статья X была вычеркнута из договора, когда он ратифицировался Сенатом США. Эта статья гарантировала, что США признают мексиканских и испанских землевладельцев и что мексиканцы, живущие на захваченных землях, получат равные права с американскими гражданами.
Мексика потеряла более 500 тысяч квадратных миль (1,3 млн квадратных километров), то есть почти половину своей территории. Война также вызвала чувство национального единения в Мексике, которое утратилось с момента окончания войны за независимость в 1821 году.
Война также привела к появлению нового класса политиков в Мексике, которым удалось прервать господство Санта-Анны над Мексикой и в конечном счёте провозгласить либеральную республику в 1857 году. Одним из первых деяний республики было принятие нескольких законов, которые способствовали колонизации обширных и малонаселённых северных мексиканских штатов, чтобы таким образом избежать дальнейших территориальных потерь.
Аннексированные территории населяли примерно 1000 мексиканских семей в Калифорнии и 7000 семей в Нью-Мехико. Некоторые вернулись обратно в Мексику, а подавляющее большинство осталось и стало гражданами США.
За месяц до конца войны президент Полк был раскритикован Палатой представителей в поправке к резолюции. Критиковали и генерала Тейлора за "войну необязательную и неконституционно начатую президентом Соединённых Штатов". За этой критикой, в которой важную роль играл конгрессмен Авраам Линкольн, последовала тщательная проверка Конгрессом первопричин войны, включая фактические сомнения в претензиях, высказанных президентом Полком.
На голосовании, следуя курсу партии, все виги поддержали поправку. Атака Линкольна испортила его политическую карьеру в Иллинойсе, где война была популярна, и Линкольн не прошёл перевыборы.
В большинстве штатов победа и приобретение новых земель породила волну патриотизма (страна также получила южную половину Орегона согласно договору 1846 года с Великобританией). Победа, казалось, осуществила веру граждан в «предназначение» их страны. В то же время виг Ральф Валдо Эмерсон отвергал войну "как средство достижения «предназначения» Америки". Он признавал, что "большинство великих свершений в истории осуществлены постыдными средствами". Хотя виги были против войны, они сделали Закари Тейлора своим кандидатом в президенты на выборах 1848 года, превознося его армейскую исполнительность, но в то же время приглушая критику в его адрес по поводу самой войны.
В 1880-х Улисс Грант, служивший под командованием Скотта, назвал этот конфликт злонамеренной войной, которая низвела на Соединённые Штаты кару небесную в форме гражданской войны:
Со времен американо-мексиканской войны прошло много, очень много времени. Соединенные штаты Америки постепенно стали сверхдержавой, гегемоном мира. Мексика же скатилась к уровню второразрядных стран, поставщика дешевой рабочей силы в США. На протяжении всего этого периода в Мексике не нашлось лидера, что смог бы вернуть утраченные земли. Но это не значит, что такого не найдется в будущем. Сейчас северная Мексика — земля наркомафии, земля войны и террора. А на всякой войне — рождаются военачальники. Рождаются герои…