На пути к Франкфурту к Салтыкову прибыл Лаудон и сообщил, что Фридрих двинулся против Дауна, почему Гаддик повернул туда же и что поэтому теперь неуместно движение к Франкфурту, и просил дать ему 30 000 русских войск на подкрепление Дауна. Затем требовал взять контрибуцию с Франкфурта и торопился с войсками туда, чтобы предупредить русских, но опоздал.
3 августа армия Салтыкова подошла к Франкфурту и расположилась на правом берегу Одера; на следующий день соединились с ней и войска Лаудона (18 500 человек при 48 орудиях). Салтыков предполагал выслать вперед кавалерию под начальством Румянцева и затем двинуться на Берлин; но ввиду уклончивых действий Дауна, а также известия, что для прикрытия столицы прибыл сам король, он должен был отказаться от этого плана и начал готовиться к отступлению на Кроссен, на соединение с главною австрийскою армией. Между тем наша кавалерия охватила отрядами армию Фридриха; каждый ее шаг был известен Салтыкову. Положение Фридриха делалось критическим: в расстоянии от 80, 150 и 100—120 верст от Берлина находились три массы неприятельских войск: 58 000 Салтыкова, до 50 000 Дауна (а впереди, в 40 верстах от Салтыкова, 15 000 Гаддика) и 30 000 имперцев в Саксонии. Против них Фридрих имел свободных войск всего до 50 000 человек. Чтобы выйти из этого положения, оставалось одно – дать бой наиболее выдвинувшейся русской армии, которая ни разу не уклонялась от боя и отличалась наибольшею решительностью в действиях.
Салтыков понял, что он может быть атакован на правом берегу Одера, и решил принять бой на занятой уже им позиции у Кунерсдорфа, для чего ему пришлось только повернуться кругом. Позиция эта, совершенно недоступная с фронта, была расположена на высотах от Жидовской горы на Кунерсдорф до оврага Беккергрунд. Доступы с фронта прикрывались Одером и болотисто-лесистой местностью; удобный к ней подступ был только справа, со стороны Кюстрина; атака с этой стороны лишала русских возможности восстановить свои сообщения с Познанью, напротив, прусская армия в случае неудачи подвергалась наименьшему риску, имея свободный путь отступления к Нижней Варте.
Собственно, позиция состояла из трех групп высот (Мюхельберг, Большой Шпиц и Жидовская), разделенных оврагами. Правый фланг примыкал к оврагу Беккергрунд и р. Гюнер, а левый – к Одеру; здесь же была командующая Жидовская гора. Опасаясь обхода правого фланга, Салтыков приказал Тотлебену освещать все пространство между дорогами на Кюстрин и Кроссен и велел укрепить позицию также и к стороне правого фланга. 11 августа Тотлебен донес, что армия Фридриха переправилась через Одер ниже Лебуса и направилась к Герицу.
Не сомневаясь более в намерениях Фридриха, Салтыков приказал армии повернуться кругом и начать окапываться, затем перевел Лаудона на правый берег реки и очистил Франкфурт. Армия расположилась в две линии: на правом крыле стал авангард Вильбуа и 1-я дивизия Фермора, в центре – 2-я дивизия Румянцева, а на левом крыле – обсервационный корпус князя Голицына. Корпус Лаудона стоял в резерве за правым крылом, ибо здесь был стратегический ключ позиции – путь отступления на Кроссен.
Фридрих решил атаковать левое крыло с фронта главными силами и – в охват фланга. Отдельный отряд Вунша (9 батальонов, 12 эскадронов) должен был от Лебуса наступать к Франкфурту, чтобы захватить путь отступления союзников. Таким образом, Фридрих с армией в 48 000 и около 200 орудий атаковал 59-тысячную армию с 230 орудиями.
12 августа в 3 часа утра началось сражение при Кунерсдорфе; часть прусских войск показалась на третинских высотах, а главные силы короля двинулись в обход к верховьям Гюнера, о чем Тотлебен тотчас же донес Салтыкову, который решился ожидать окончательного выяснения обстановки. В 9 часов утра две сильные батареи открыли огонь из-за оврага во фланг левому крылу (князя Голицына), а пехота спустилась в овраг; в то же время у Кунерсдорфа появились главные силы короля, как бы угрожая центру и нашему правому крылу. Чтобы не дать продолжать далее обход, Салтыков приказал Тотлебену сжечь мост; рассчитывая, «что хотя тем навлеку всю неприятельскую силу на одно левое крыло, но тем лучше в состоянии буду, по неприятельским предприятиям, распоряжение делать».
В 11½ часа утра начался бой за Мюльбергские высоты на левом нашем крыле. Фланговая позиция была всего для одного полка; под сильным огнем противника атакованные превосходными силами наши уступили пруссакам высоты, причем потеряли две батареи.
Первый участок позиции был потерян. Теперь предстоял бой за Большой Шпиц, бывший в центре. И тут между прежним и новым фронтом позиции было не более 1000 шагов, которые могли занять всего 2 полка. На этом узком пространстве войска центра построились в три линии; первая линия центра, Румянцева, продолжала занимать окопы, прикрывая правый фланг войск, выстроившихся поперек позиции, за оврагом Кугрунд. Графу Фермору послано приказание поддержать центр.
Едва только русские выстроили свою первую линию за Кугрундом, как пруссаки быстро двинулись в атаку, спустившись с Мюльбергских высот, «и в то же самое время неприятельская конница (Зейдлица и принца Вюртембергского) в ретраншаменты пошла», занятые графом Румянцевым.
Эта атака, произведенная на заранее укрепленную сильную позицию, была отражена картечным и сильным ружейным огнем, причём Румянцев и Лаудон выдвинули из резерва всю кавалерию для преследования совершенно расстроенной прусской конницы.
Бой за высоты центра разгорался: вместе с фронтальной атакой пруссаки пошли в обход по оврагу со стороны Кунерсдорфа, но, к счастью, после отбитой Румянцевым атаки кавалерии; тогда 3 наших полка сделали захождение налево и встретили обходящих сильным огнем; скоро прибыли к ним на поддержку 2 полка с правого крыла от Фермора и образовали теперь правое крыло боевого порядка в направлении, перпендикулярном к первоначальному. Вскоре наши перешли в наступление и именно с этого фланга.
Одновременно с атакой Зейдлица прусская пехота атаковала войска Панина за Кугрундом, но была отбита. Тогда Фридрих приказал Зейдлицу снова возобновить атаку, а сам решил атаковать русских пехотой с трех сторон: с фронта, со стороны Кунерсдорфа и «особливою колонною» Финка, усиленной частью конницы принца Вюртембергского, «взад», т.е. со стороны Одера. В это время Вунт занял Франкфурт, вследствие чего путь отступления русских был отрезан.
Атака Финка была отбита последними 2 полками из второй линии Румянцева при содействии артиллерии.
Вторичная атака Кугрунда, с фронта, веденная самим королем, присутствие которого воодушевляло войска после нечеловеческих усилий, удалась. Панин был сбит, и пруссаки овладели большою частью высот Большого Шинца и батареею. Но к этому времени подошли резервы Лаудона и Фермора с правого крыла; они подкрепили центр и правый фланг нашего нового боевого порядка. Зейдлиц, изготовившийся ко второй атаке, был сам атакован во фланг успевшею развернуться нашею конницей и был обращен в бегство, поплатившись за столь невовремя произведенную первую атаку.
Около 5 часов дня наши подкрепления удлинили боевой порядок вправо и «на неприятеля во фланг ударили, батареи наши освободили, на которых уже несколько пушек заклепано было и в самую лощину (Кугрунд) неприятеля погнали».