Here are 2 methods I've tried (I bathe mine about once a month). Both methods involve using the bathtub since it helps to do it in a room where the door can be closed. Both methods also involve getting into the tub with them (standing/crouching), and closing the shower door or shower curtain. It helps to either be undressed (if at home alone) or in a bathing suit (if not) so that you don't have to worry about getting your clothes wet. For both methods I dilute the kitty shampoo with warm water in a plastic cup beforehand and keep that handy, as well as keeping the bottle of kitty shampoo handy in case you need more. In both methods, I let the cat wander around the bathtub, but gently restrain him from jumping out of the tub... though inevitably that will happen, so when that happens I just pick him up and bring him back into the tub. Oh, also, be careful to not get water in your cat's ears (I generally stop at the neck and then afterwards use a wet washcloth with only water to clean his head and face)
DISCLAIMER: these methods are probably limited to cats who don't bite or scratch while being bathed, so first try it just with a water-only bath (so that if it doesn't go well you don't have to worry about rinsing off shampoo).
Method 1: I bought a cheap spray attachment for my tub faucet. In this method, I use the spray attachment to wet them down a little (I set it up and turn it on BEFORE bringing the cat into the bathroom), and then pour the diluted shampoo on their back, sides and tail and then use my hands to spread the shampoo to their underside and to lather them up. I then use the sprayer to rinse them very thoroughly (very important to rinse thoroughly). I don't turn off the tap in between the initial wetting stage and the rinsing stage, because it's too hard to get the water temperature right while also controlling the cat!
Method 2: I don't use the spray attachment for this one. For this method, I first fill the tub with a couple of inches of comfortably warm water, and also fill a couple of empty gallon bottles with warm water (I use gallon bottles of water from the supermarket which I have emptied and kept for this purpose). I also have a plastic cup with diluted shampoo. I bring the cat into the tub, and pour the diluted shampoo on him. I then use the cup to scoop up water from the tub to pour on him, to wet the fur enough to be able to spread and lather the shampoo. Then, after lathering, I do a preliminary rinse using cupfulls of water from the tub. But since this water now has shampoo in it, I drain the tub (while continuing to rinse) and then when the tub is drained I take the gallon bottles filled with warm water and pour that on them to really rinse their coat. Be sure to lift the cat's front up a little to be able to rinse his underside. I just started using this method the last few baths, and it seems to be easier (maybe because there isn't any running water so it's less stressful for them???).
Drying: In both methods, I then pick up the cat and cuddle him while using my hands to try to gently squeeze excess water out of his fur while comforting him. Then I use a towel to dry him, wrapping him up like a little kitty burrito. I don't blow dry (I don't even own a blow dryer, having curly hair which I never straighten!), so I always make sure that the temperature in the apartment is at least 70 degrees before I bathe them. As their fur dries, I use a comb to comb out their fur, but this is often done only one or two strokes at a time because by this point they're pretty annoyed with me and walk away
