Launching an attack on agencies and advertisers, the Tory leader highlighted the sale of padded bras and sexy knickers for under-tens by Bhs, describing it as "harmful and creepy".
He said: "The marketing and ad agencies even have a term for it: KGOY - Kids Growing Older Younger. It may be good for business, but it's not good for families and it's not good for society, and we should say so."
In a speech to Business in the Community, Cameron said: "I have no desire to wrap kids in cotton wool. But the protection of childhood innocence against premature sexualisation is something worth fighting for."
He added: "When I see businesses behaving irresponsibly, I'm going to speak out."
The move was seen as an attempt by Cameron to signal that the Tories were no longer in thrall to big business, but critics claimed his attack backfired after Bhs said the products concerned had been withdrawn from sale more than three years ago.