В ночь на 14 мая русская эскадра подошла к Корейскому проливу и построилась в ночной походный ордер. Впереди по курсу были развернуты крейсера, за ними в двух кильватерных колоннах шли эскадренные броненосцы и между ними транспорты. Позади эскадры на расстоянии одной мили следовали два госпитальных судна. Во время движения через пролив Рожественский вопреки элементарным требованиям тактики отказался от ведения разведки и не произвел затемнения на кораблях, чем помог японцам обнаружить русскую эскадру и сосредоточить на ее пути свой флот. Первым в 2 часа 25 минут заметил русскую эскадру по огням и донес адмиралу Того вспомогательный крейсер «Синано-Мару», находившийся в дозоре между островами Гото-Квельпарт. Вскоре по интенсивной работе японских радиотелеграфных станций на русских кораблях поняли, что они обнаружены. Однако адмирал Рожественский отказался от всяких попыток помешать переговорам японских кораблей.
Получив донесение об обнаружении русских, адмирал Того вышел из Мозампо и развернул главные силы своего флота на пути движения русской эскадры. Тактический замысел командующего японским флотом состоял в том, чтобы главными силами охватить голову русской эскадры и сосредоточенным огнем по флагманским кораблям вывести их из строя и тем самым лишить эскадру управления, а затем ночными атаками миноносцев развить успех дневного боя и завершить разгром русской эскадры.
С наступлением утра 14 мая Рожественский перестроил свою эскадру сначала в строй кильватера, а затем двух кильватерных колонн, оставив транспорты позади эскадры под охраной крейсеров. Следуя в строю двух кильватерных колонн Корейским проливом, русская эскадра в 13 часов 30 минут справа по носу обнаружила главные силы японского флота, которые шли на пересечение ее курса.
Адмирал Того, стремясь охватить голову русской эскадры, не рассчитал свой маневр и прошел на расстоянии 70 каб. от головного русского корабля. В то же время Рожественский, полагая, что японцы стремятся атаковать левую колонну эскадры, состоявшую из старых кораблей, снова перестроил свой флот из двух кильватерных колонн в одну. Главные силы японского флота, маневрировавшие в составе двух боевых отрядов, выйдя на левый борт, начали последовательный поворот на 16 румбов, чтобы охватить голову русской эскадры. Этот поворот, производившийся на расстоянии 38 каб. от головного русского корабля и продолжавшийся 15 минут, ставил японские корабли в чрезвычайно невыгодное положение. Делая последовательный поворот на обратный рейс, японские корабли описывали циркуляцию почти на одном месте, и, если бы русская эскадра вовремя открыла огонь и сосредоточила его на точке поворота японского флота, последнему могли быть причинены серьезные потери. Однако этот благоприятный момент не был использован.
Головные корабли русской эскадры открыли огонь только в 13 часов 49 минут. Огонь оказался малоэффективным, так как из-за неправильного управления не был сосредоточен на тех японских кораблях, которые осуществляли разворот на месте. По мере поворота корабли противника открывали огонь, сосредоточивая его на флагманских кораблях «Суворов» и «Ослябя». По каждому из них одновременно вести огонь от четырех до шести японских броненосцев и крейсеров. Русские эскадренные броненосцы также пытались сосредоточивать свой огонь на одном из кораблей противника, но из-за отсутствия соответствующих правил и опыта подобных стрельб не могли добиться положительных результатов.
Превосходство японцев в артиллерии и слабость бронирования своих кораблей сказались сразу же. В 14 часов 23 минут броненосец «Ослябя», получив серьезные повреждения, вышел из строя и вскоре затонул. Около 14 часов 30 минут вышел из строя броненосец «Суров». Имея серьезные повреждения и весь объятый пламенем, он еще в течение пяти часов отражал непрерывные атаки неприятельских крейсеров и миноносцев, но в 19 часов 30 минут тоже затонул.
После выхода из строя броненосцев «Ослябя» и «Суворов» боев порядок русской эскадры нарушился, и она потеряла управление. Японцы воспользовались этим и, выйдя в голову русской эскадры, усилили свой огонь. Во главе русской эскадры оказался броненосец «Александр III», а после его гибели — «Бородино».
Стремясь прорваться во Владивосток, русская эскадра шла генеральным курсом 23 градуса. Японцы, имея большое преимущество в скорости хода, охватывали голову русской эскадры и сосредоточивали на ведущем корабле огонь почти всех своих броненосцев. Русские матросы и офицеры, оказавшись в тяжелом положении, не оставляли своих боевых постов и со свойственным им мужеством и стойкостью до последнего отбивали атаки противника.
В 15 часов 05 минут начался туман, и видимость настолько уменьшилась, что противники, разойдясь на контркурсах, потеряли друг друга. Около 15 часов 40 минут японцы вновь обнаружили русские корабли, шедшие на норд-ост, и возобновили с ними бой. Около 16 часов русская эскадра, уклоняясь от охвата, повернула на юг. Вскоре бой снова прекратился из-за тумана. На этот раз адмирал Того в течение полутора часов не мог найти русскую эскадру и, в конце концов, вынужден был использовать для ее поиска свои главные силы.
Хорошо организовав разведку перед боем, Того в ходе сражения пренебрегал ею, в результате чего дважды терял из видимости русскую эскадру. В дневной фазе Цусимского сражения японские миноносцы державшиеся недалеко от своих главных сил, предприняли несколько торпедных атак против русских кораблей, поврежденных в артиллеристском бою. Эти атаки производились одновременно группой миноносцев (по четыре корабля в группе) с различных направлений. Снаряды выстреливались с дистанции от 4 до 9 каб. Из 30 торпед в цель попали только пять, причем три из них — в броненосец «Суворов».
В 17 часов 52 минуты главные силы японского флота, обнаружили русскую эскадру, которая в это время вела бой с японскими крейсерами, вновь атаковали ее. Японский командующий на этот раз отвлекся от маневра охвата головы и повел бой на параллельных курсах. К концу дневного сражения, продолжавшегося до 19 часов 12 минут, японцы потопили еще два русских броненосца — «Александр III» и «Бородино». С наступлением темноты адмирал Того прекратил артиллерийский бой и направился с главными силами к о. Оллындо, а миноносцам приказал атаковать русскую эскадру торпедами.
Около 20 часов до 60 японских миноносцев, разделенных на небольшие отряды, стали охватывать русскую эскадру. Их атаки начались в 20 часов 45 минут одновременно с трех направлений и носили неорганизованный характер. Из 75 торпед, выпущенных с дистанции от 1 до 3 каб., в цель попало только шесть. Отражая торпедные атаки, русские моряки уничтожили два японских миноносца и 12 повредили. Кроме того, в результате столкновений между своими кораблями японцы потеряли еще один миноносец, и шесть миноносцев были серьезно повреждены.
К утру 15 мая русская эскадра как организованная сила перестала существовать. В результате частых уклонений от атак японских миноносцев русские корабли рассредоточились по всему Корейскому проливу. Только отдельные корабли пытались самостоятельно прорваться во Владивосток. Встречая на своем пути превосходящие силы японцев, они смело вступали с ними в решительный бой и вели его до последнего снаряда. Геройски сражались с противником экипажи броненосца береговой обороны «Адмирал Ушаков» под командованием капитана I ранга Миклухо-Маклая и крейсера «Дмитрий Донской», которым командовал капитан II ранга Лебедев. Эти корабли погибли в неравном бою, но не спустили своих флагов перед врагом. Совершенно иначе поступил младший флагман русской эскадры адмирал Небогатов, без боя сдавшийся в плен японцам.
В Цусимском сражении русский флот потерял 8 броненосных кораблей, 4 крейсера, вспомогательный крейсер, 5 миноносцев и несколько транспортов. Четыре броненосных корабля и миноносец вместе с Рожественским (вследствие ранения он находился без сознания) и Небогатовым сдались в плен. Часть кораблей была интернирована в иностранных портах. И только крейсер «Алмаз» и два миноносца прорвались во Владивосток. Японцы потеряли в этом сражении 3 миноносца. Многие их корабли получили серьезные повреждения.