Когда экспедиция Кана вернулась, Жуан II решил послать в южном направлении два военных корабля водоизмещением каждый 50 т с тяжелыми орудиями и транспортное судно с припасами. Начальником был назначен Бартоломеу Диаш, участвовавший (как и Кан) в экспедиции Азанбужи, а главным пилотом — опытнейший гвинейский мореход Перу Аленкер.
Нет доказательств, что прямая задача экспедиции Диаша состояла в достижении Индии. Вероятнее всего, предусматривалась дальняя разведка, результаты которой представлялись сомнительными для главных действующих лиц.
Не выяснено также, какие суда получил Диаш — каравеллы или «круглые корабли», отличавшиеся от каравелл округленными обводами корпуса и прямым парусным вооружением: четырехугольные паруса располагались в покойном состоянии или при ветре, дующем прямо с кормы, перпендикулярно килю судна. Плавание на таких кораблях было более безопасно, лавировали они хорошо, и при длительном лавировании команда не так изнурялась, как на каравеллах. Но в отношении всех остальных качеств, предъявляемых к парусным судам, они еще уступали каравеллам.
Хронология морского похода Диаша не совсем ясна. В настоящее время принято, что его флотилия оставила Лиссабон в первой половине августа 1487 г. Диаш шел обычной трассой до Мины, а от Мины — путем Диогу Кана до 22° ю. ш. 18 декабря он обнаружил бухту «Святой Марии» (вероятно, нынешняя Уолфиш-Бей, у 23° ю. ш.). За Южным тропиком он открыл пустынный, слабо расчлененный берег. Португальцы будто вступили в другой мир: голые берега, часто окутанные туманами, тусклые краски — ничто не напоминало им тропической Африки. Диаш водрузил свой первый падран на берегу «Малой Гавани» (по-португальски — Ангра Пекена, близ 26°30′ ю. ш.) и оставил здесь транспортное судно. Оттуда он пошел на юг вдоль пустынного берега, который все время слегка уклонялся к востоку. Устье р. Оранжевой Диаш просмотрел: река не доходила до моря, так как летние дожди еще не выпадали, но выступающую южнее скалу он окрестил «мысом Поворотов». Наступил январь 1488 г. — разгар лета южного полушария. У 33° ю. ш. берег неожиданно круто повернул на запад (бухта Сент-Хелина), в это время поднялся сильный ветер, перешедший вскоре в шторм. И Диаш приказал двигаться в открытое море, но не из-за боязни, что суда разобьются о скалы, как считал Ж. Барруш. — Диаш хотел «обойти» преобладающие южные ветры, мешавшие продвижению.
13 дней буря трепала два маленьких корабля, уносимых к югу, все холоднее становились волны. Когда океан стал успокаиваться, Диаш изменил курс на восточный. Несколько дней суда шли в этом направлении, но берега все не было видно. Диаш предположил, что обогнул южную оконечность Африки. Чтобы убедиться в этом, он повернул корабли к северу. Через два-три дня вдали показались горы, а затем высокий, покрытый зеленой травой берег, который тянулся с запада на восток. Диаш вошел в бухту, названную им Баиа-душ-Вакейруш («Бухта Пастухов»): на холме португальцы увидели стадо коров и несколько полуголых пастухов. Диаш послал людей на берег набрать воды, но ее здесь не оказалось; португальцы продвинулись чуть восточнее, в Моссел-Бей, у 22° в. д. И здесь тоже паслись коровы. Пастухи отогнали их подальше, но сами, крича и размахивая руками, остались на холме. Диаш пустил в них стрелу из самострела. Один пастух был убит, остальные бежали. Португальцы подошли к убитому «негру» и увидели, что волосы у него, «как шерсть», но кожа — «цвета сухих листьев» — гораздо светлее, чем у жителей Западной Африки. Так убийством безоружного пастуха ознаменовалась первая встреча европейцев с народом койкоин — с коренными жителями Южной Африки, которых голландцы издевательски назвали готтентотами («заиками»). 3 февраля 1488 г., пополнив запасы питьевой воды, португальцы двинулись вдоль берега прямо на восток. За мысом Ресифе, у 26° в. д., они достигли широко открытой в сторону океана бухты, получившей позже название Баиа-Лагоа («Бухта Лагуны»), позднее искаженное в Алгоа. Оттуда берег плавно поворачивал на северо-восток, по направлению к Индии. И Диаш правильно решил, что его корабли обогнули все южное побережье Африки и находятся в Индийском океане, который многие ранее считали замкнутым морем. Морской путь в Индию вокруг Африки был найден!
Вероятно, в Алгоа ослабленные цингой и истомленные долгими скитаниями в океане команды обоих кораблей потребовали возвращения на родину. Опасаясь бунта, Диаш уступил, выпросив три дня. Он проверил северо-восточное направление берега и в начале марта достиг Риу-ду-Инфанти — большинство историков считает ее р. Грейт-Фиш, у 27° в. д., но, возможно, это одна из речек юго-западнее современного Ист-Лондона, у 27°30′ в. д. С «глубокой печалью» Диаш повернул обратно и 12 марта 1488 г. чуть западнее, на прибрежном островке поставил самый дальний падран (обнаружен в 1938 г.).
23 апреля суда вошли в небольшой залив у 20° в. д. и простояли здесь до 15 мая, вероятно пережидая зимние бури. 16 мая, продолжив плавание домой, Диаш обогнул мыс, названный им в честь Святого Брандана, не подозревая, что это самая южная точка Африки, 34°52′ ю. ш.
«Его величество мыс Доброй Надежды» (такое имя дал ему Диаш) показался в начале июня; предание, что он назвал его «Мысом бурь», ошибочно. 6 июня он поставил здесь третий падран и отплыл на север, а 24 июля 1488 г. вошел в бухту Ангра-Пекена, где его ждало вспомогательное судно. Из девяти членов экипажа в живых осталось двое; Диаш забрал их, захватил все продукты, а судно сжег. В Португалию он прибыл в декабре 1488 г.
Диаш продвинулся почти на 13° южнее, чем Диогу Кан, обогнул все южное побережье Африки, открыл и нанес на удивительно точную для его времени карту участок ранее неизвестного берега длиной свыше 2,5 тыс. км. Король Жуан II, однако, не спешил реализовать «добрую надежду», которую принес Диаш. Выяснилось, что от Лиссабона до южного африканского мыса нужно пройти по океану не менее 10 тыс. км, и представлялось очевидным, что еще несколько тысяч километров отделяет этот мыс от Индии. Путь вокруг Африки к Индии казался слишком далеким. Нужно было исключительное событие, чтобы другой португальский король снова послал свои корабли в Индию. Таким событием стало чудесное открытие «Индии» на западе — подвиг, совершенный в 1492 г. испанской экспедицией X. Колумба.