В 2.45 ночи 14 мая японский вспомогательный крейсер "Синано Мару" заметил огни плавучего госпиталя "Орел", последовал за ним и в 4.45 обнаружил всю русскую эскадру. В 6.30 на правом траверзе эскадры заметили японский крейсер "Идзуми". С этого момента японские корабли непрерывно наблюдали за эскадрой. Основные силы японского Соединенного флота вышли в море и начали свое развертывание, стремясь не допустить прорыва русских во Владивосток. Русская эскадра начала перестраиваться в боевой порядок. В 9.30 броненосцы построились в одну колонну, ход 11 узлов. В 10.20 крейсер "Жемчуг" несколькими выстрелами отогнал с пути эскадры японский каботажный пароход и вернулся к эскадре. В 10.45 по японским крейсерам открыл огонь броненосец береговой обороны "Адмирал Ушаков", но вскоре перестрелка прекратилась. Подобный обстрел предпринял и броненосец "Орел", но Рожественский приказал не тратить снаряды. В 12.45 броненосцы снизили скорость до 9 узлов и начали новое перестроение - в две колонны. В 13.20 слева появились главные силы японцев - 1-й боевой отряд (броненосцы "Микаса", "Сикисима", "Фудзи", "Асахи", крейсера "Ниссин", "Кассуга") и 2-й боевой отряд (крейсера "Идзумо", "Адзума", "Токива", "Якумо", "Асама", "Ивате"). Рожественский приказал вновь построиться в одну колонну и увеличить скорость эскадры до 11 узлов. Японцы пересекли курс русской эскадры, вышли на ее левую сторону и в 13.40 легли на параллельный курс. В 13.49 с "Суворова" был сделан первый выстрел по противнику, его поддержали остальные русские корабли. Японцы продолжили сближение, на "Микасе" был поднят сигнал: "Судьба Империи зависит от этого боя. Пусть каждый честно исполнит свой долг". В 13.55 они ответили огнем.
Японский огонь был сосредоточен на русских флагманах - 1-й отряд вел огонь по "Суворову", 2-й отряд по "Ослябе". Уже через 10 минут после начала боя "Ослябя" получил большое количество попаданий. Броненосец имел слабое бронирование. Через огромные пробоины в его носовой части поступала вода. Возник крен на левый борт. На корабле начались многочисленные пожары. На "Суворове" начался пожар в корме, была разбита задняя дымовая труба. Начались попадания и в другие русские корабли. Японцы также получили многочисленные попадания снарядов, например, в "Микасу" попали более 10 снарядов, вышел из строя для исправления повреждений крейсер "Асама", но ни для одного японского корабля они не стали гибельными.
Судьба двух русских флагманов была решена в первые сорок минут боя. В 14.40 с сильным креном на левый борт и весь в пожарах из строя вышел броненосец "Ослябя". В 14.50 он лег на левый борт и затонул. Погибло 515 человек. Часть экипажа подобрали миноносцы "Буйный" (поднял из воды 204 человека), "Быстрый" (10 человек) и "Бравый" (170 человек). Их обстреливали японцы, и миноносцы были вынуждены отойти. В 14.42 чудом избежал гибели броненосец "Фудзи". В его кормовую 305-мм башню попал русский снаряд, пробил ее броню и разорвался внутри башни. Башня была разрушена, погибло 8 и ранено 9 человек. В ней начался пожар, загорелись заряды. Еще минута и произошел бы взрыв боезапаса, но один из осколков пробил трубу гидросистемы, и вода потушила пламя. В 14.50 из строя эскадры вправо вышел "Суворов". На корабле был перебит рулевой привод и он потерял управление. Броненосец имел крен на левый борт, на надстройке и мостике бушевали многочисленные пожары, но он продолжал вести огонь по противнику. Рожественский, получив ранения осколками, попавшими в боевую рубку, перестал управлять боем.
Эскадру дальше повел "Император Александр III". Теперь японцы сосредоточили свой огонь на нем, и броненосец начал получать большое количество попаданий. Неприятель описал координат вправо и стал обгонять наши броненосцы, держась на параллельном курсе. Тем временем русские крейсера вели бои с японскими крейсерами, и несколько раз попадали под перекрестный огонь броненосцев и крейсеров противника. Против "Авроры" и "Олега" действовали "Касаги", "Читосе", "Нийтака" и "Цусима", пытавшиеся атаковать транспорты. Остальные русские крейсера завязали перестрелку с кораблями 3-го боевого отряда. В 15.00 крейсер "Светлана" получил попадание снарядом большого калибра в носовую часть ниже ватерлинии. Корабль сильно осел носом, его скорость снизилась. На "Авроре" убило командира, начался пожар, крейсер получил подводную пробоину. В 15.15 буксир "Русь", получив несколько попаданий, остановился и был протаранен транспортом "Анадырь". Экипаж гибнущего корабля перешел на буксир "Свирь".
В 15.20 японские истребители предприняли первую атаку на горящий "Суворов", но были отогнаны огнем эскадры. В 15.30 получил повреждения броненосец "Сисой Великий" и покинул строй эскадры для их исправления. Вода через пробоины залила на нем носовые отсеки.
В 15.30 из строя вышел горящий "Александр III", но вскоре исправил повреждения и вернулся в строй. Русскую эскадру повел броненосец "Бородино". Огнем русских кораблей был поврежден броненосец "Сикисима". Но еще больше японские корабли пострадали от преждевременных разрывов собственных снарядов. Они произошли на "Сикисиме", "Микасе", крейсере "Ниссин". Продолжая прорыв, русская эскадра пыталась повернуть на север. Но поскольку японцы занимали выгодную позицию, охватывая голову эскадры, то наши корабли были вынуждены уклониться в южном направлении, чтобы выйти из-под обстрела.
В 16.10 сгустился туман и бой главных сил прекратился. Продолжался бой крейсеров. От обстрелов сильно пострадали плавмастерская "Камчатка", транспорты "Корея" и "Иртышь". Эскадра продолжила свой прорыв во Владивосток. В 16.45 японские истребители вновь атаковали "Суворова", но и на этот раз их атака была отбита. Броненосец еще отстреливался из нескольких уцелевших орудий. В 17.05 "Александр III" вновь вышел из строя, но в 17.40 вернулся в строй эскадры. В 17.20 был оставлен командой получивший тяжелые повреждения вспомогательный крейсер "Урал". В 17.30 миноносец "Буйный" подошел к борту горящего "Суворова", оставшегося в хвосте русской эскадры, и снял с него раненого Рожественского, офицеров штаба и нескольких матросов. Всего им было спасено с броненосца 23 человека. В 17.35 "Буйный" поднял сигнал: "Адмирал передает командование Небогатову". Тот находился на броненосце "Николай I" и получил это сообщение в 18.05 от миноносца "Безупречный".
В 18.00 ушедшие было японцы, стали нагонять русскую эскадру и в 18.20 открыли огонь, сосредоточив его на "Бородино". Вскоре на нем начался пожар в корме, корабль лишился грот-мачты, часть его орудий была уничтожена. Русские корабли также вели огонь по противнику. Однако японский огонь оказался более эффективным. В 18.30 с креном на правый борт из строя эскадры вышел "Александр III" и в 18.50 перевернулся и затонул. Из его экипажа не спаслось ни одного человека. Сильно был поврежден и головной броненосец "Бородино". Он имел крен на правый борт, пожары не прекращались, но корабль вел эскадру во Владивосток. Солнце уже зашло, и Того приказал своим основным силам прекратить огонь и отвернул вправо. Выполняя поворот броненосец "Фудзи" в 19.12 сделал последний залп из носовой башни главного калибра. Снаряды попали в правый борт "Бородино" в районе первой 152-мм башни и вызвали взрыв ее боезапаса. Русский броненосец перевернулся и моментально затонул. Из 866 человек экипажа спасся один человек - матрос Семен Ющин.
Теперь строй русской эскадры возглавил броненосец "Орел", который уже был поврежден в ходе дневного боя. В 19.20 он повернул эскадру на север. Со всех сторон русскую эскадру окружали японские истребители и миноносцы. Первой их жертвой стала плавмастерская "Камчатка". Она пыталась прикрывать огнем поврежденный "Суворов", но в 19.20 японские миноносцы ее потопили. Одновременно миноносцами № 72, 73, 74 и 75 был атакован "Суворов". В него попали несколько торпед, и горящий броненосец затонул. В 19.30 торпедное попадание в носовую часть получил крейсер "Адмирал Нахимов". Его скорость уменьшилась, и он отстал от эскадры.
В ходе дневного боя японцам удалось уничтожить четыре русских броненосца - "Суворов", "Бородино", "Александр III", "Ослябя" и сильно повредить остальные русские корабли. 2-я Тихоокеанская лишилась своих главных сил и была дезорганизована. Но ей предстояло еще выдержать многочисленные ночные торпедные атаки 43 японских истребителей и миноносцев. Такого успеха японцам удалось добиться ценой небольших потерь. В дневном бою не было потоплено ни одного японского корабля, хотя значительные повреждения получили все японские броненосцы. Потери на них - 35 убитых и 172 раненых. Из крейсеров наиболее пострадали "Ниссин", "Кассуга", "Кассаги", "Идзумо", "Адзума", "Асама", "Ивате". На крейсерах погибло 47 и ранено 285 человек. Общие потери японцев составили 82 убитых и 457 раненых. Все поврежденные японские корабли остались на своих позициях, а после окончания сражения благополучно вернулись в свои базы.