Let's see. "Breakfast" is the first meal you have in the morning and it should be consistent enough so as to drive you for your coming activities. We sure all agree at this point.
"Lunch", in some countries, is a light meal you eat at midday. It nourish you to reach the end of the day of work.
When you get back home, you have "dinner" - the main meal, usually in the evening, heavier than a simple lunch. If you decide to eat something light after dinner, that's a "supper".
"Dinner" is also used to refer formal meal in a meeting. "Supper" is also used in this sense, but stills refres to a light meal.
Now, here's the complication. "Dinner" can also mean "lunch" taken at midday when it is the main meal of the day. This happens in my country, for instance, and implies cultural habits.
We usually take a light breakfast and a heavy lunch (dinner?). When we get back home, usually late in the evening, you also eat a heavy meal - this is customary. No suppers, unless you love eating or have enough money to afford it.
When I was in Canada some years ago, we had breakfast around 8 in the morning, a real consistent, tasty one. Around 10, everybody stopped for a "nutritional break": coffee, cookies or donuts. At 12:30, lunch time! Of course, a sandwich and some juice in the summer or a little chicken soup in the winter. Around 3:30, another nutritional break. Give a break! Coffee and donuts. Back home around 7 in the evening, dinner time - something really consistent; homemade or just eating out. Supper? No thank you!
It has to do with culture. See?