Bayon est située à mi-distance entre les villes des Nancy et d'Épinal.
Son origine remonte au temps de la conquête romaine, puisqu'autrefois il s'agissait d'un oppidum romain.
La commune s'est érigée sur le promontoire naturel que constitue la côte Lebel. Sa position géographique offrait des défenses naturelles avec d'un côté la Moselle et de l'autre l'Euron. Bayon a connu une occupation constante depuis les gaulois.
En 1172, la terre de Bayon fut donnée en apanage à Henri le Lombard, cadet de la Maison de Lorraine, fils du duc Ferry Ier de Bitche. C'est lui qui, au début du XIIIe siècle, fit construire un château à vocation défensive ainsi que d'épaisses murailles (dont l'accès était gardé par trois portes). A travers les vicissitudes du bas et haut moyennage et les conflits qui se succèdent, la commune a connu des fortunes diverses. Ainsi, Le 24 décembre 1635, lors de la guerre de Trente Ans, le duc de Longueville, s'empara de la ville pour le compte du roi de France. La cité fut une nouvelle fois pillée et incendiée et la forteresse finit comme la plupart des châteaux forts lorrains, démantelée en 1636 sur ordre de Louis XIII et Richelieu. Les dernières traces de ce passé féodal disparaitront avec la Révolution.
Bayon entre alors dans l'ère moderne et industrielle avec l'implantation d'une tuilerie, d'une tonnellerie mécanique, d'une boulonnerie, d'une coopérative agricole, d'un moulin et bien entendu l'usine Chicorée. Malheureusement de ce riche passé ne subsistent que quelques traces.
Bayon est une commune rurale proche des Vosges. C'est un lieu propice aux promenades, aux activités de découverte de la nature. Outre les étangs communaux de la Saussaie (pêche possible), la Moselle borde le bourg. Le lit de cette rivière est classé Réserve régionale de la Moselle sauvage. Une partie de son territoire est également classé en zone Natura 2000.