Ultrafine BaFe12O19 powder with crystallite sizes less than 200 nm was prepared via a citric acid precursor method. Citric acid was added into an aqueous solution, containing nitrates of Ba2+ and Fe3+ in a stoichiometric ratio to form barium ferrite, to chelate metallic ions in the solution. The pH of aqueous solutions was adjusted with NH4OH. After ethylene glycol was added into the solution and the system temperature was raised, esterification and dehydratation led to the formation of solid ester precursor. The distribution and contents of metallic ions in the ester are affected by the [citric acid]/[metallic ions] molar ratio used and the pH of starting solutions. When the ester-precursor obtained at pH = 9 with [citric acid]/[metallic ions] = 1.5 was used, crystalline BaFe12O19 appeared at temperatures as low as 923 K, and pure barium ferrite was obtained at 1073 K. According to the experimental results obtained, the reaction mechanism involved in the pyrolysis of esters is proposed and discussed.