Flight D7237 departed just before 7am (WST) on Sunday for Kuala Lumpur with 359 people on board and was about 90 minutes into the flight when the pilot identified what an AirAsia statement said was a technical issue.
Passengers said the captain announced there appeared to have been an engine seizure on the left side.
Passenger Sophie Nicolas said it was a terrifying ordeal and she could tell it was "really bad" judging by the cabin crew's reaction.
"He (flight captain) said 'I hope you all say a prayer, I will be saying a prayer too and let's hope we all get back home safely'," she told reporters.
Australia 2 Malaysia.airplane fan blade went missing. Pls pray for my sister which onboard @AirAsia do something please! @tonyfernandes 😭😭😭 pic.twitter.com/9X99pO6S5z — Haji Akil (@haji_akil) June 25, 2017
A lot of people were crying and everybody burst into applause when the plane landed safely, she said.
'Like sitting on a washing machine'
Brenton Atkinson said the plane started vibrating and shaking after a small explosion before it was turned around.
"It was literally like you were sitting on top of a washing machine," he told ABC radio.
"You could see the engine out the window which was really shaking on the wing.
"It was a little unnerving, everyone handled it pretty well, no one freaked out too much."
'Brace for landing'
Passengers were ordered to get into the brace position for landing.
The plane landed back in Perth at about 10am. An airport spokesman said fire and emergency services were called to meet the plane, as a precautionary measure, but no one appeared to have been hurt.
AirAsia said in a statement the plane had returned due to a "technical reason".
"The safety of our guests are our utmost priority," AirAsia said.
"Flight crew are taking precautionary measures to check the aircraft and some guests onboard the flight will be transferred to the next available flight today".
Marine Rescue Services were also put on stand-by by police to prepare for a water landing off the WA coast.