Keep leading him and showing him what the right choices are. Get him involved in a Sunday School or youth group program, like Iwanas, Cub Scouts, etc. Keep talking to him and letting him know you are listening. He needs you to be there and not condemn everything he does, show him how to make it better when he makes a bad choice.
Make punishments fit the crime, has he hurt someone, have him wrote an apology, has he not handed in homework, have him go to the teacher with you and apologize and bring in the not turned in work, even if she won't accept it have him do it anyway. (upper elem to middle school age), has he hurt the dog, take him to the pound and show him what happens to dogs that are hurt by their owners, then make it his job to feed the dog, you will have to remind him daily.
If it's any consolation my 6 year old would tell me when he wronged someone or made a bad choice. We would fix it and move on. At 12-13 he owned up to his foibles in middle school and told me why he did certain stupid things, we talked and ironed them out. At 17 he sat in my living room and cried because all his friends were having sex and doing drugs but he couldn't let himself do it. He is now 21, in the Navy has not ever done pot and only had one beer in high school.
That boy was suspended every year until 8th grade for idiocy, and we did punish, a lot, but I always sat down and talked to him and gave him my time to let him and me understand why he was being such dumba$$.