Oh, I feel for you. DS was an appallingly bad sleeper at that age. Bouncing, driving in the car, feeding to sleep - none of them worked for him. Three months is extremely young for self-settling, but some babies can do it. We did it because cuddling a baby for five hours until they sleep is unsustainable.
Are you still swaddling/wrapping? I would suggest you make sure you're doing that. You can try an angel-style wrap (look on youtube for instructions) - it works well for slightly older babies because their hands are up and can be sucked for comfort.
Are you sure that your baby is really distressed? I ask because I was reacting to every little cry and couldn't tell the difference between overtired crying and upset crying. I had a massively overstimulated baby who would be fine until the stimulation was removed (like when going to bed) and then he would cry as a way of relieving his stress. It took me a long time to learn the difference.
When we were at sleep school (with a baby the age of yours), the instructions were to wait for 60-120 seconds to hear if the cry was declining or escalating before going in to help. Then the idea was to settle DS so that he was calm, but not asleep, then leave the room so he could fall asleep alone. Of course, we'd put him down and his eyes would pop open and we'd start again - it took lots of repetition and I probably couldn't have stuck with it if I wasn't desperate.
Call your MCHN/Parenting line for suggestions. They might be able to recommend sleep school, or someone to come out and help. I really needed external help to figure out what to do.
I hope one of these ideas helps. It's so hard having a miserably overtired baby, not least when you're miserably overtired yourself.