I used a book called _Healthy Sleep Habits, Happy Child by Dr Marc Weissbluth. I did have my kids cry it out but I really didn't start that until 3 months old. I think that the better sleep your baby gets during the day, the better he will sleep at night (sleep begets sleep), think of yourself as an example, as it is always harder to fall asleep when you are over tired. I would try to start forcing your child to become a crib sleeper in the day. Try to put him down before he gets tired, (look for signs of tiredness, and try to get him down before that), and then maybe if you are not ready to let him cry it out completely, let him cry for 10-15 minutes then go in and soothe and do it again until he sleeps. Most babies at 12 weeks are tired every 2 hours, so try to get him down for a nap no more than 2 hours from when he wakes.
At night, i would just try to extend his sleep times. If you put him down for bed and he wakes after 2 hours, try letting him cry for 15 minues before going in, and extend that time that you let him cry a little each night, so eventually he will get used to it and sleep longer.
It is a hard process but sleep training is totally worth it. Both of my kids are really great sleepers now, and slept through the night very early, but we had to work at it. In my opinion a couple weeks of hardship is worth the sleep that is so needed for your child's wellness and yours, too.
Good luck!!!