Du début des années 1920 jusqu'en 1931, Charles Bouvier joue au Servette FC Genève comme arrière latéral. Il remporte trois fois le championnat en 1924/25, 1925/26 et 1929/30. Il dispute également la finale de la Coupe de Suisse 1927/28 contre Grasshopper Club Zurich, remportée 5 à 1, c'est le premier trophée dans cette compétition du Servette FC.
Il est international suisse à 5 reprises[2], il est également dans l'équipe suisse olympique en 1924, mais ne disputera aucune rencontre.