The money-laundering charges include nine counts of receiving illegal proceeds, five counts of using illegal proceeds and seven counts of transferring the proceeds to other entities, Deputy Inspector-General of Police Noor Rashid Ibrahim said in a statement.
Najib, who denies any wrongdoing, was expected to be charged in court later on Thursday over the transfer of funds into his personal bank account. The case is linked to the disappearance of billions of dollars from heavily indebted state fund 1Malaysia Development Berhad (1MDB).
Najib, who founded 1MDB in 2009, has faced intense scrutiny since unexpectedly losing a general election in May to Mahathir Mohamad, who reopened investigations into allegations that billions of dollars were stolen from the fund.
Noor did not say whether the 21 money laundering charges related to 1MDB but lawsuits filed by the United States Department of Justice allege that $681 million made its way into Najib's account from the fund.
Najib will face additional charges for offences involving the use of one's office or position for gratification, officials said earlier.
Thursday's charges will be the second batch leveled against the former premier for alleged crimes linked to 1MDB.
Najib was charged with money laundering, criminal breach of trust and abuse of power in July and August relating to funds of about 42 million ringgit ($10.14 million) that allegedly flowed from SRC International, a former 1MDB unit, into his personal bank account.
Najib has pleaded not guilty to all charges so far and has consistently denied wrongdoing. The SRC trial will begin in February.
1MDB is being investigated by at least six countries, including Singapore, Switzerland and the United States, over alleged money laundering and graft.
SRC had been the initial focus of Malaysian investigators because all the suspicious transactions involving it went through Malaysian entities.
(Reporting by Rozanna Latiff; Editing by Paul Tait)