Biochar derived from various materials has been investigated with regard to its ability to decrease the bioavailability of heavy metals in contaminated soils, and thus reduce their potential to enter the food chain. However, little attention has been given to the adsorption capacity of untreated crop straws, which are commonly used as a biochar feedstock, especially in soils. Hence, this study was conducted to investigate the effect of crop straws on heavy metal immobilization and subsequent heavy metal uptake by maize and ryegrass in a soil artificially polluted by Cd and Pb. Bamboo biochar, rice straw, and wheat straw were mixed into soil four weeks before the experiment, enabling them to reach equilibrium at 2% (w/w), 1% (w/w), and 1% (w/w), respectively. The results showed that soil pH for both species was significantly increased by all treatments, except when wheat straw was used for ryegrass cultivation. Soil organic carbon was only improved in the rice straw treatment and the soil alkali-hydrolyzable N content was significantly decreased with all of the amendments, which may have contributed to the lack of an effect on plant biomass. Soil available Cd was significantly lower in the rice straw treatment than in the control soil, while Pb levels dearly decreased in wheat straw treatment. Me Cd concentration in shoots of maize was reduced by 50.9%, 69.5%, and 66.9% with biochar, rice straw, and wheat straw, respectively. In addition, shoot Cd accumulation was decreased by 473%, 673%, and 66.4%, respectively. Shoot Pb concentration and accumulation were only reduced with the rice straw treatment for both species. However, metal uptake in plant roots was more complex, with increased metal concentrations also detected. Overall, the direct application of crop straw could be considered a feasible way to immobilize selected metals in soil, once the long-term effects are confirmed. (C) 2016 Elsevier Inc. All rights reserved.