Został ranny w katastrofie, do której doszło 29 lipca 1967 na pokładzie USS „Forrestal”, w wyniku przypadkowego odpalenia rakiety przez jeden z przygotowujących się do startu samolotów. Na czas remontu lotniskowca McCain zgłosił się do służby w eskadrze szturmowej lotniskowca USS „Oriskany”.

Jeniec wojenny 26 października 1967, gdy brał udział w nalocie na elektrociepłownię w centrum Hanoi, jego samolot został trafiony rakietą przeciwlotniczą w prawe skrzydło. W trakcie katapultowania złamał obie ręce i nogę, Wylądował w jeziorze Truc Bach. Wietnamczycy pojmali rannego McCaina i zatrzymali w miejscowym więzieniu. Mimo ciężkich przesłuchań McCain nie ujawnił niczego poza swoim nazwiskiem, stopniem, numerem i datą urodzenia. Dopiero gdy okazało się, że jest synem amerykańskiego dowódcy wysokiej rangi (John McCain Jr. był wówczas dowódcą Sił US Navy w Europie), został poddany leczeniu w szpitalu, a informacja o jego pojmaniu została ujawniona stronie amerykańskiej. W grudniu 1967 trafił do obozu jenieckiego. Początkowo przebywał w celi z dwoma innymi Amerykanami, zaś od marca 1968 przez kolejne dwa lata był zamknięty w izolatce. Gdy jego ojciec został w lipcu 1968 mianowany dowódcą Sił Amerykańskich na Pacyfiku (CINCPAC), władze północnowietnamskie zaoferowały młodemu McCainowi możliwość zwolnienia.