Quantitative adsorption behaviors and mechanisms of biochars for Cd(II), Ni(II) and Cu(II) in single, binary and ternary systems were investigated in this study, of which the aged biochars were separated after co-aging with soil using an improved three-layer mesh method. The biochar adsorption capacities for metal ions were in the order of Cd(II) > Cu(II) > Ni(II) in the single system while Cu(II) > Cd(II) > Ni(II) in binary and ternary systems; moreover, the adsorption capacity of modified biochar for Cu(II) in the binary system (82.50 mg·g-1) was even larger than that in the single system (71.60 mg·g-1). For Cd(II), the dominant adsorption mechanism of biochars was precipitation and adsorption with minerals; for Ni(II) and Cu(II), the dominant adsorption mechanism of biochars was cation exchange. Modification improved the adsorption capacity of biochar, but competition weakened the improvement for Cd(II) and Ni(II); however, competition enhanced that for Cu(II). For Cd(II), Ni(II) and Cu(II), competition aggravated the negative effect of co-aging on biochar adsorption performance. We conclude that competition weakens the improvement of biochar adsorption for Cd(II) and Ni(II) by modification, meanwhile, competition amplifies the deterioration caused by co-aging; therefore, when treating Cd or Ni pollution, the impact of competition should be fully considered to avoid overestimating the remediation effect of modified biochar.