A.B.
Well, what I am going to suggest goes against the "good parenting" but I am dealing with same situation with now 6 year old son. Even as 3 year old boy he will go hungry for few days if I refused to give him any junk food.
Now at age 6, when I can talk to and explain things and exploit his weakness (he is into pokemon, gameboys etc). I tell him how important it is for him to eat fruits and vegetables and healthy meal then we jointly decide his dinner plate (where I give him few option each for one slice of fruit, few pieces of salad/vegetable, one main dish) and if he finishes everything on his plate. He gets points (equivalent to dollar values) for buying his games/cards. And also get to choose one junk food/chocolate/ice cream as dessert.
I know, if I did not have a picky eater at home and someone told me they were doing this. I would have been aghast listening to it. But you know very well all the side effects of not eating at all. And I am hoping he will get into habit of eating eventually.