The Oneworld carrier says in a statement the A330-300 was en route to Perth from Singapore with 303 passengers and 10 crew on board when there was "a sudden change in altitude".
"No details are available at this stage as to what caused the altitude change," it says.
"A number of passengers and crew sustained injuries, including fractures and lacerations", as a result of the incident which occurred sometime this afternoon.
The Australian Transport Safety Bureau says in a separate statement that "early reports indicate that three cabin crew and approximately 30 passengers sustained injuries" of which about 15 had serious injuries such as broken bones and lacerations.
The ATSB says the pilots "declared a mayday" before diverting to Learmonth.
An investigation has been launched and investigators are on their way to Learmonth, says the ATSB.
The aircraft had been due to land at Perth airport at 14:10 but instead at 13:45 made an emergency landing at Learmonth airport, says Qantas.
"Emergency services including medical attendants met the aircraft on landing," it adds.
Learmonth is an airport south of the Western Australian town of Exmouth which is on Western Australia's northwest coast. Learmonth airport has a runway long enough to support widebodies because it is also an Australian air force base.