В четверг, 24 июня 1982 года Boeing 747-236B через несколько минут после вылета из Куала-Лумпура попал в облако вулканического пепла от внезапно извергшегося вулкана Галунггунг, в результате чего у самолёта один за другим заглохли все 4 двигателя.
Первые странности возникли после 20:40 WIT (13:40 UTC) над Индийским океаном, к югу от Явы, когда второй пилот и бортинженер заметили огни святого Эльма на ветровом стекле. Вернувшийся в кабину КВС также мог наблюдать это явление. Обычно огни Святого Эльма можно наблюдать на крыльях во время грозы, однако погодный радар не показывал наличия грозового фронта. В пассажирский салон начал проникать дым. Поначалу это списали на сигаретный дым, поскольку курение на борту самолёта в то время ещё было разрешено. Однако дым становился плотнее, появился запах серы, и пассажиры забеспокоились. Бортпроводники начали искать источник дыма, но, обыскав весь самолёт, не обнаружили его.
Приблизительно в 20:42 WIT (13:42 UTC) в двигателе №4 (правый крайний) появились признаки помпажа, а затем он остановился. Меньше чем через минуту остановился двигатель №2 (левый ближний к фюзеляжу). Ещё до того, как экипаж успел прекратить подачу топлива к нему, почти одновременно остановились оставшиеся двигатели №1 и №3.
Лишённый тяги двигателей, экипаж мог полагаться только на аэродинамическое качество самолёта. Чтобы безопасно пересечь высокую горную гряду на южном побережье Явы, экипажу нужно было сделать это на эшелоне 3500 метров. Пилоты приняли решение в случае невозможности преодоления горной гряды на заданной высоте развернуть самолёт и попытаться совершить аварийную посадку на воду в Индийском океане. Всё это время второй пилот и бортинженер продолжали попытки запустить двигатели, лайнер находился на высоте, превышавшей максимально допустимую для такой операции (8550 метров) и запустить двигатели не удавалось.
Несмотря на нехватку времени, КВС сделал объявление для пассажиров, которое они позднее описывали как «шедевральное преуменьшение»:
«Дамы и господа, говорит командир корабля. У нас небольшая проблема. Остановились все четыре двигателя. Мы делаем всё возможнейшее, чтобы их запустить вновь. Надеюсь, это не доставляет вам слишком много беспокойства.»
Непрекращающиеся попытки второго пилота и бортинженера запустить двигатели привели к положительному результату — двигатель №4 запустился. КВС использовал его тягу для уменьшения скорости снижения. Через некоторое время запустился двигатель №3, что позволило командиру начать набор высоты. Вскоре запустились и остальные два двигателя.
Перед посадкой экипаж обнаружил, что лобовое стекло потеряло прозрачность. Как выяснилось позднее, полёт на крейсерской скорости через облако вулканического пепла не только повредил стекло, но и почти полностью стёр ливрею с фюзеляжа.
Посадка по приборам была невозможна в связи с неисправностью системы автоматического привода на посадку в аэропорту Халим Перданакусума в Джакарте. Экипаж мог смотреть вперёд только через два очень узких сектора лобового стекла. При этом второй пилот отслеживал удаление до полосы по дальномерному радиомаяку и пересчитывал удаление в высоту глиссады на таком удалении, а командир выдерживал требуемую высоту. Посадочные огни самолёта не работали.
Примерно в 21:30 WIT (14:30 UTC) рейс BA009 совершил благополучную посадку в аэропорту Джакарты. Никто из 247 пассажиров и 15 членов экипажа не пострадал.