В ночь на 21 июля (1 авг.) рос. войска 6 колоннами выступили из лагеря Гречены (Гризешти) и построились для боя 5 отдельными каре, выделив небольшой резерв. Кавалерия располагалась в интервалах между каре и позади них, в середине каре находилась артиллерия. Удары по левому флангу противника наносили каре ген.-квартирмейстера Ф. В. Баура и ген.-поручика П. Г. Племянникова; с фронта – каре ген.-аншефа П. И. Олица, а по правому флангу турок – каре ген.-поручика Я. А. Брюса и ген.-поручика Н. В. Репнина. Сам П. А. Румянцев находился при дивизии Олица. Резерв составляли: тяжёлая кавалерия ген.-поручика П. С. Салтыкова и ген.-м. В. В. Долгорукова (всего 3,5 тыс. сабель), а также артиллерия в составе бригады ген.-м. П. И. Мелиссино. Успешно отразив в ходе выдвижения атаки вражеской конницы, рос. войска сами атаковали тур. лагерь. В это время отряд янычар (10 тыс. чел.) перешёл в контратаку, ворвался в боевые порядки каре генералов Племянникова и Олица и расстроил их. Румянцев ввёл в бой резервы и отбросил янычар в исходное положение. Войска ген. Баура захватили позиции противника и 93 орудия на левом фланге, а дивизия ген. Брюса овладела правофланговыми тур. укреплениями. В это время войска ген. Репнина вышли на высоту южнее лагеря противника и открыли по нему ружейный и арт. огонь с тыла. Турки, не выдержав натиска, начали в панике отступать. Крымские татары не решились наступать и отошли к Аккерману (ныне Белгород-Днестровский). Отряд ген. Баура преследовал отступавшую тур. армию и 23 июля (3 авг.) настиг её у Карталы во время переправы через Дунай, нанеся противнику новое поражение.
Победа в К. с. открыла рос. войскам дорогу к Дунаю, явилась свидетельством полководч. искусства П. А. Румянцева, применившего свой гл. принцип – сокрушение противника наступательными действиями. Потери тур. армии составили ок. 20 тыс. убитых и пленных и св. 130 орудий; рос. армии – ок. 1,5 тыс. убитых и раненых.