Three successive vegetable pot experiments were conducted to assess the effects on the long-term immobilization of heavy metals in soil and crop yield improvement after the addition of peanut shell biochar and an alkaline mineral to an acidic soil contaminated with lead and cadmium. Compared with the CK treatment, the change rates of biomass in the edible parts of the three types of vegetables treated with B0.3, B1, B3, B9, R0.2 and B1R0.2 were -15.43%~123.30%, 35.10%~269.09%, 40.77%~929.31%, -26.08%~711.99%, 44.14%~1067.12% and 53.09%~1139.06%, respectively. The cadmium contents in the edible parts of the three vegetables treated with these six additives reduced by 2.08%~13.21%, 9.56%~24.78%, 9.96%~35.61%, 41.96%~78.42%, -4.19%~57.07% and 12.43%~65.92%, respectively, while the lead contents in the edible parts reduced by -15.70%~59.47%, 6.55%~70.75%, 3.40%~80.10%, 55.26%~89.79%, 11.05%~70.15% and 50.35%~79.25%, respectively. Due to the increases in soil pH, soil cation-exchange capacity and soil organic carbon content, the accumulation of Cd and Pb in the vegetables was most notably reduced with a high dosage of 9% peanut shell biochar alone, followed by the addition of a low dosage of 1% peanut shell biochar blended with 0.2% alkaline mineral. Therefore, the addition of a low dosage of 1% peanut shell biochar blended with 0.2% alkaline mineral was the best additive in increasing the vegetable biomass, whereas the addition of 9% peanut shell biochar alone was the worst. Evidently, the addition of 0.2% alkaline mineral can significantly reduce the amount of peanut shell needed for passivating heavy metals in soil, while it also achieves the effect of increasing the vegetable yield.