I'm going through this same issue. Here's what I did, I cut down to 2 bottles a day, 1 in morning, one at night before bed. If you put him in bed with the bottle, stop that first.
We've gone through 2 weeks where I offered milk in a cup all throughout the day, and that failed. A couple of days ago, I decided enough was enough. I gave her a cup of milk only. Then we had breakfast, and she still hadn't drank any milk. After eating, I guess she was thirsty enough, because she drank 2 ounces. I didn't give her any water until just before nap time. I have been putting her to bed with a cup of water just in case she's thirsty, since dd doesn't drink very much during the day without the milk. Of course if you just want to hold out until he gets thirsty, be careful to watch for signs of dehydration.
We're on day 4 of this routine, and up to about 6 ounces of milk from the cup, with no bottles. I've just been supplementing her diet with yogurt and cheese. It's not actually MILK that a child needs, but the calcium and vit D. As long as they are getting enough calcium from other sources, there's actually no need to drink milk at all. And a serving of cheese is actually pretty small, so it's really easy to add calcium to your diet with cheese.
I've actually starting making homemade yogurt, rather than the storebought kind. Might be something to look into if you are interested. The way I make mine, there's a full serving of milk in only 1/2 cup of yogurt, so I've found I can easily supplement my daughters calcium intake.