THis could be my story!
My DS is the same age. I think that he is overtired. In saying that, how can you get him to sleep any earlier? I don't know the answer to that.
We have resorted to leaving DS in the cot, and after making sure he is alright, I firmly but kindly tell him it is bedtime, lie down and I will see him in the morning. It works for us. He will usually howl for about 5 mins them calm down and eventually go to sleep.
Mind you this is not every night either. Probably about once a week.
DS used to be a wonderful eater, and now he just spits it out! He loves pureed fruit, so it is easier for me, as I just put a little fruit with whatever I am trying to get him to eat, and he will eat it.