He's definitely not a baby, as someone else described him. You can put anyone's age in terms of months. Your son is in YEARS now.
You need to start with the old fashion, "If he's hungry, he'll eat" routine. This age is full of many picky eaters! Give him his food, a small amount of each food and his drink. (unless he slams down his drink first so then hold off on the drink) He must sit at the table during meal time. If he doesn't eat, he doesn't eat. He feeds himself! He must behave while at the table and sit. Give him one behavior warning. If he refuses to listen then he is down from the table and leaves to sit on the toilet and sit somewhere until the rest of you are done, quietly. You do this with each and every meal. Be firm. You are in charge, you set the rules. Not him. Do this for one week straight. Don't cave. He will not starve. He will not get sick. He may throw a fit but that's just him trying to control you and the situation. When he is hungry, he will eat. Do NOT give him snacks in between meals or he will eat just that and not his regular meals. Wrap up his food for later. Offer him leftovers for snack time, small amount. Again, he WILL eat when he's hungry and he will stretch this out for days waiting for you to cave. Do not give in. Do not let him set the rules or standards, period. If you left a 3 year old set the rules in the house what will you do when he's 16, because trust me, that's not a pretty sight.
K. B
mom to 5 including triplets