James, who came close to a triple-double with 10 assists and seven rebounds, scored on a driving layup to seal the win with 10 seconds to play.
Charlotte trailed 88-80 with just over three minutes to go but cut the deficit to 92-91 on a run that included nine points by Richardson. Delonte West then scored for the Cavs and James followed with his clinching layup.
Zydrunas Ilgauskas added 16 points and nine rebounds for Cleveland, which had lost its previous two games. The Bobcats have dropped three straight.