SAAirlink flies five times weekly between Johannesburg and Vilankulo, from where you can arrange island helicopter or boat transfers with the lodges. CR Aviation has flights connecting Vilankulo with Bazaruto (about US$335 return). Archipelago Charters has a helicopter service connecting Vilankulo with Bazaruto, Benguera and Magaruque, and also offers scenic-flight charters.
There are airports on Benguerra Island and Bazaruto Island.
All the top-end lodges arrange speedboat transfers for their guests. Most day visitors reach the islands by dhow from Vilankulo, where there are a number of dhow safari operators.