Оценив все достоинства сложившейся ситуации, генерал-аншеф П.С. Салтыков предложил австрийскому главнокомандующему фельдмаршалу Доуну наступать на Берлин, чтобы перенести боевые действия во внутренние территории Прусского королевства. Но тот воспротивился этому, желая перенести основные боевые действия в Силезию, что отвечало интересам Австрии.
Король Фридрих решил не допустить наступления Салтыкова на Берлин. Во главе главных сил прусской армии он выступил навстречу союзной армии с намерением разбить её в генеральном сражении. В это время союзные войска (41 тысяча русских, 18,5 тысяч австрийцев, 248 орудий) расположились недалеко от Франкфурта на восточном берегу реки Одер. Они готовились к маршу в Силезию, где им предстояло соединиться с главными силами армии Австрии.
Прусский король, имевший под своим командованием 48 тысяч человек и около 200 орудий, решил разгромить противника ударом с северо-востока во фланг и тыл. В течение двух дней, 30-31 июля, его армия переправилась через Одер севернее Франкфурта и двинулся к деревне Кунерсдорф, в окрестностях которой расположился походный лагерь союзников.
Манёвр неприятельской армии не остался незамеченным. Генерал-аншеф Салтыков, чтобы не быть атакованным на марше, решил дать противнику сражение близ Франкфурта-на-Одере. Хорошо знакомый с местностью, он расположил войска на высотах между городом и Кунерсдорфом. Первоначально они располагались фронтом на север, поэтому король Фридрих II и решил обойти их с тыла. Салтыков разгадал замысел неприятеля и рано утром 1 августа, в день сражения, развернул свои войска фронтом на юг длиной в 4,5 километра и шириной от 800 метров до 1,5 километра.
Русские войска развернулись на трех высотах — Мюльберг, Гросс-Шпицберг (Большой Шпиц) и Юденберг. Горы отделялись друг от друга широкими и глубокими оврагами Кунгрунд и Лаудонсгрунд. Кунерсдорфская позиция союзников была усилена окопами и артиллерийскими редутами. Подходы к высотам с запада и с севера затрудняли заболоченная местность и речка Гюнер. Подступы к деревне Кунерсдорф хорошо просматривались с высот.
Основные свои силы генерал-аншеф Салтыков расположил в центре позиции на горе Большой Шпиц и на правофланговой высоте Юденберг. Именно сюда подходили дороги, по которым двигалась прусская армия. На Большом Шпице укрепилось 17 русских пехотных полков под командованием генерала П.А. Румянцева. Здесь же была сосредоточена большая часть артиллерии. На горе Юденберг расположились 9 русских пехотных полков дивизии генерала Фермора и австрийские войска генерала Лаудона. На редутах было установлено 5 усиленных батарей. На левофланговой высоте Мюльберг, под которой протекала речка Гюнер, главнокомандующий поставил пять пехотных полков князя Голицына, укомплектованных молодыми рекрутами.
В резерве за правым флангом у Ротеферверка находилась русская кавалерия (71 эскадрон) и 6 полков австрийской пехоты. Резерв одновременно прикрывал правобережную часть Франкфурта-на-Одере. Выбранная Салтыковым позиция позволяла маневрировать резервами по фронту. Расположенные на скатах гор артиллерийские батареи имели возможности вести круговой обстрел.
Вышедший к Кунерсдорфу из леса со стороны Познани противник сразу же стал разворачиваться в косой боевой порядок для атаки. Король Фридрих построил свою армию в две линии пехоты. На флангах встала кавалерия. Большая часть тяжёлой прусской кирасирской кавалерии под командованием генерала Зейдлица, одного из лучших прусских военачальников, разместилась на левом фланге, где местность позволяла передвигаться большим массам конницы. Прусская артиллерия первоначально расположилась перед строем королевской пехоты.
Кунерсдорфское сражение началось после трехчасовой артиллерийской подготовки. Первая атака прусских войск была направлена на гору Мюльберг, где полки Голицына были атакованы с фронта и фланга через реку Гюнер. Концентрическая атака превосходящими силами позволила нападавшим сбить с высоты её защитников и овладеть Мюльбергом. Расстроенные пехотные полки князя Голицына с боем отошли на гору Большой Шпиц.
Но развить свой успех атакующие прусские войска не смогли. Все их последующие попытки преодолеть овраг Кунгрунд и ворваться на позиции русских на высоте Большой Шпиц окончились неудачей. Пехота и артиллерийские батареи генерала Румянцева сражались стойко, отражая вражеские атаки ружейными залпами и картечью. Румянцевские полки провели сильную контратаку и штыковым ударом сбросили ворвавшихся было на гору пруссаков снова в овраг.
Тем временем король Фридрих II приказал своему генералу Финку, который командовал правым флангом, установить на горе Мюльберг артиллерийские батареи. После этого они начали контрбатарейную борьбу с русскими орудийными расчётами на высоте Большой Шпиц. От пушечного огня войска противников, скопившиеся на высотах, несли большой урон. В ходе сражения русский главнокомандующий подкрепил полки генерала Румянцева войсками из резерва и пехотой, снятой с позиции на горе Юденберг.
В сражении был эпизод, когда прусские кирасиры принца Вюртембергского прорвались на высоту Большой Шпиц, однако их успешно контратаковала русская кавалерия. В 17 часов дня Фридрих II ввёл в бой тяжёлую кавалерию генерала Зейдлица. Руководивший обороной Гросс-Шпицберга генерал Румянцев бросил ей навстречу русскую и австрийскую кавалерию, и натиск королевской конницы был отбит с большим для неё уроном.
Между тем силы русских на высоте Большой Шпиц с каждым часом увеличивались за счёт подкреплений с Юденберга — генерал-аншеф Салтыков помогал Румянцеву удерживать высоту. Пруссаки продолжали настойчиво атаковать позиции русских на её склонах. Под вечер русские и их союзники провели сильную контратаку через овраг Кунгрунд, отбили гору Мюльберг и отбросили прусскую армию по всему фронту.
Прусская армия вместе со своим королём в большом беспорядке бежала с поля битвы. Она потеряла около 19 тысяч человек убитыми и ранеными, почти всю свою артиллерию — 172 орудия, обоз и знамёна. Во время отступления большая часть наёмных прусских солдат дезертировала. В сражении союзники потеряли 15 тысяч человек. Из них русские — 2614 убитыми и 10863 ранеными.
После Кунерсдорфа Пруссия оказалась на грани военной катастрофы. Король Фридрих II отправил в Берлин сообщение: «Все потеряно, спасайте двор и архивы». Однако катастрофы не произошло. Бежавших пруссаков лёгкая союзная конница преследовала только до границ поля битвы. А предложение русского главнокомандующего пойти на Берлин союзная сторона вновь отклонила. Более того, у Салтыкова с высшим австрийским командованием возникло разногласие по вопросам ведения войны против Пруссии.
За блестящую победу над прусской армией при Кунерсдорфе Пётр Семёнович Салтыков удостоился звания генерал-фельдмаршала.
Кунерсдорфское сражение стало вершиной его полководческой биографии Он творчески использовал принципы линейной тактики. Для контратак русские войска применяли рекомендованные уставом 1755 года колонны для «проломления неприятельского фронта». Новые русские орудия — знаменитые шуваловские единороги продемонстрировали своё преимущество над прусской артиллерией. Их стрельба через головы своих войск сыграла решающую роль при отражении атаки тяжёлой кирасирской кавалерии генерала Зейдлица.
После этого отражения австрийская сторона продолжала настаивать на использовании русской армии для обороны своих границ. Союзники теперь больше действовали на коммуникациях противников, стараясь лишить его свободы манёвра и продовольственных баз. 28 сентября 1760 года русский корпус генерала З.Г. Чернышёва взял прусскую столицу Берлин. Из-за разногласий главнокомандующих союзными армиями война затягивалась. Салтыков как мог противодействовал намерениям австрийцев. Из Вены в Санкт-Петербург на него поступали многочисленные жалобы. В том же 1760 году, когда генерал-фельдмаршал вошёл в конфликт и с Высшим военным советом в российской столице, его сместили с должности главнокомандующего и отозвали в Россию.