Боям за высоты предшествовал сильный артиллерийский обстрел Порт-Артура, который противник предпринял утром 25 июля с целью скрыть свои намерения в отношении Дагушани и Сяогушани. После обстрела, от которого пострадало только мирное население города, японцы в 15 часов этого дня открыли по гарнизонам высот Дагушань и Сяогушань ураганный огонь из батарей, расположенных восточнее этих высот. Несмотря на то что батареи на Дагушани и Сяогушани буквально засыпались градом снарядов артиллерии противника, они немедленно открыли ответный огонь. Вскоре к ним присоединились батареи восточного фронта крепости Мортирная, Залитерная и батареи литера А и Б, на вооружении которых в общей сложности состояло 15 тяжелых орудий. Более двух часов длилась упорная артиллерийская дуэль. Тяжелым батареям русских удалось подавить огонь двух японских осадных батарей. Однако сказалось численное превосходство их артиллерии. Стрельба остальных батарей противника по Дагушани была настолько интенсивной и точной, что расположенная там батарея русских понесла потери в личном составе и была вынуждена прекратить огонь. Стрелковые окопы в большинстве были разрушены и не могли служить укрытиями для пехоты. Поддержанная мощным огнем своей артиллерии, в 19 часов японская пехота перешла в атаку. Но многочисленные цепи противника были встречены ружейно-пулеметным огнем гарнизона Дагушани, понесли потери и отошли в исходное положение. Вскоре японцы повторили атаку, но снова были вынуждены отступить, не выдержав огня приведенных в порядок батарей высот, батареи литера Б и ружейно-пулеметного огня защитников позиции.
Утром 26 июля после сильного артиллерийского обстрела японские войска возобновили наступление, овладели окопами русских у подножия высот, но дальше продвинуться не смогли. Встреченные в упор огнем батарей защитников, штурмующие колонны противника откатывались к ранее занятым окопам.
В 11 часов японская пехота под прикрытием огня своей артиллерии снова двинулась к вершинам высот. Для защитников Дагушани и Сяогушани создалась сложная обстановка. Они понесли большие потери, а их батареи не могли оказать им помощи, так как израсходовали все снаряды, а новые боеприпасы еще не были доставлены. В этот критический момент на выручку своим пехотинцам пришли крейсер «Новик», две канонерские лодки, «Бобр» и «Гремящий», и семь миноносцев, прибывших к этому времени в бухту Тахэ. Русские корабли внезапно для японцев открыли огонь по их пехоте и батареям. Под воздействием мощного огня корабельной артиллерии 12-й полк противника и поддерживавшая его батарея отошли назад, а остальные полки 11-й дивизии прекратили наступление.
Вскоре на море появились броненосец и четыре крейсера японцев, и русские корабли ввиду превосходства сил противника на море были вынуждены прекратить огонь и уйти в Порт-Артур. Этим не замедлил воспользоваться противник. Японская пехота возобновила наступление и, не считаясь с большими потерями, подошла к батарее Дагушани. Спасать свои орудия бросились стрелки 12-й и 10-й рот. У батареи завязалась ожесточенная рукопашная схватка. В бою был тяжело ранен командир 10-й роты, капитан Верховский, пал смертью храбрых бросившийся на врага и исколотый штыками капитан Курковский, но русские солдаты отбросили японцев от батареи и сбили их с вершины Дагушани.
В 20 часов японцы атаковали 10-ю роту, но в рукопашном бою снова были отброшены от батареи. В этом бою рота понесла большие потери, выбыли из строя все офицеры, но остатки роты под командой ефрейтора Крапивина продолжали стойко защищать свою позицию. Только на рассвете следующего дня, когда противник стал выходить в тыл позиции, 18 солдат роты во главе с ефрейтором Крапивиным с боем отошли в крепость. На Дагушани было оставлено шесть орудий, из которых три были разбитыми.
После захвата Дагушани японцы установили там свою артиллерию и прямой наводкой стали обстреливать гарнизон Сяогушани. Положение его защитников стало критическим. У одного орудия из-за частой стрельбы отказал тормоз отката, а у другого закончились снаряды. Необходимо было послать подкрепление, вернуть Дагушань и облегчить положение гарнизона Сяогушани. Но комендант крепости Смирнов отказал в этой просьбе генералу Кондратенко. В ночь на 28 июля остатки рот, оборонявших Сяогушань, с боем вышли из окружения и отошли в крепость.
Дорогой ценой обошелся японцам захват высот. Потери их войск составили в этих боях 1280 человек против 450 человек русских.
Захват японцами Дагушани и Сяогушани давал им возможность подойти вплотную к основным укреплениям Порт-Артура, приблизить свою артиллерию и тем самым создать непосредственную угрозу правому флангу войск, защищавших крепость. Как показал ход боевых действий в последующем, эту передовую позицию необходимо было удержать во что бы то ни стало.
В ночь на 1 августа японцы пошли на штурм Угловых гор и предгорий Панлуншаня и заняли их, но затем отошли назад под интенсивным огнем русских батарей. 3 августа японцы впервые предложили сдать крепость.