We have the same problem and our daughter is rapidly approaching 6. :) So you aren't alone.
My DD is snack happy and, if given the chance, will snack her way through the day instead of eating meals. She gets breakfast and then 1 snack. Same thing with lunch. The after lunch snack is eaten before 1:30pm or she doesn't get one. We discovered that if she eats anything after 2pm, then she really fights us with dinner. If we make her wait, then she's more willing aka "hungry" for dinner.
I don't know if you subscribe to the Love and Logic philosophy of child-rearing, but they suggest that if your child doesn't eat their dinner, to take away all snacks, treats, and desserts, and make them wait till breakfast. Then when they complain that they are hungry, lovingly asking if they ate their dinner. When they answer "no" then, as sympathetically as possible, say something like, "Oh, that's too bad. I get really hungry when I don't eat my dinner too. You can have a big breakfast tomorrow." Then stick with it.
Kids are so unique. You may have to try different things before you find something that works. Good luck!