Under the agreement, signed in Kuala Lumpur, Australia will send 800 asylum-seekers to Malaysia in exchange for resettling 4,000 registered refugees now living a substandard existence in Malaysia, Bernama reported.
The exchanges are to be made over a four-year period.
"We are sending a very strong message to the human traffickers that we are taking this matter very seriously," Malaysian Home Minister Datuk Seri Hishammuddin Tun Hussein said after signing the agreement.
The Australian Broadcasting Corp. said Australia agreed to pay the cost of transporting the refugees.
Malaysia has the right to reject any asylum-seekers Australia wants to locate there, the report said.
The agreement said asylum-seekers would be treated with "dignity and respect."
The agreement was not signed by the United Nations High Commissioner for Refugees.