À la fin du XIX siècle, Genève possède un réseau important de tramways avec trois modes de traction (électrique, à vapeur et hippomobile pour certains services). Il existe à cette époque deux entreprises de transport en commun :
C'est le 11 août 1899 que se constitue, dans le but de réorganiser et de développer le réseau des transports publics, la Compagnie genevoise des tramways électriques (CGTE). Dotée d'un capital social de 5 millions de francs suisses, la CGTE rachète, le 1 décembre 1900 la TS, et, un mois plus tard, la VE. La modernisation du réseau peut alors commencer avec la mise à voie métrique de l'ancien réseau de la TS, l'électrification des lignes existantes de la VE et l'acquisition d'un nouveau matériel roulant.
C'est après la Première Guerre mondiale que le déficit des lignes de campagne commence. La CGTE doit se résoudre à supprimer la desserte de certains tronçons. La CGTE manque de moyens pour développer son réseau et ne peut ni doubler certains tronçons ni même remplacer les rails usés datant du siècle précédent. La situation ne s'améliore pas, et en 1938 sont supprimées plusieurs dessertes ferroviaires qui sont remplacées par des services de bus. Puis vient la Seconde Guerre mondiale, et le manque de carburant et de pneus oblige la CGTE à remettre en service des tramways sur certains tronçons.
Après la guerre, le trafic automobile ne cesse d'augmenter, si bien que la CGTE en est victime. Le tramway est considéré comme gênant le trafic automobile. Il convient dès lors de le faire disparaître au profit des véhicules à pneus. Deux lignes de tramways doivent subsister : la ligne 12 et la ligne de ceinture. C'est ainsi que le matériel est modernisé. En l'espace de dix ans, toutes les autres lignes disparaissent. On doit pourtant bientôt constater que la solution adoptée n'est pas la bonne, ni pour la CGTE, ni pour les usagers et son personnel. Lorsque, en 1969, la ceinture est exploitée par bus, le nombre de passagers transportés chute sensiblement. La seule ligne de tramways restante, la 12, reliant Carouge à Moillesulaz, continue à elle seule à transporter un quart des passagers de la CGTE.
La dégradation générale du transport en commun provoque de nombreuses interventions politiques. Quelques mesures positives sont prises comme la création de couloirs de bus, l'achat de nouveaux véhicules, etc. Mais il y manque une cohésion politique. C'est en 1971 qu'une initiative populaire demande au Grand Conseil que la CGTE soit reprise par le canton, et c'est seulement après quatre ans d'études, en 1975, que le peuple genevois se prononce sur deux projets de loi. L'article sur la transformation de la compagnie en régie autonome d'État est accepté alors que la loi régissant son organisation est refusée. Le Grand Conseil se remet au travail et vote fin 1975 une nouvelle loi sur les buts et l'organisation des Transports publics genevois.
C'est le 1 janvier 1977 que la CGTE devient officiellement les TPG.
Dès lors, et suite à la votation du 12 juin 1988 favorable au développement des transports publics, les TPG connaissent une nouvelle période d'expansion, qui s'accélère avec l'introduction de tarifs en faveur des jeunes et des rentiers de l'AVS et de l'AI (supprimés en 2004). La modernisation du parc des véhicules, tant des tramways que des véhicules sur pneus, a également un impact très positif sur la fréquentation qui atteint un sommet au début des années 1990.
Depuis le 1 janvier 2007, les touristes hébergés dans les hôtels, auberges de jeunesse ou campings genevois peuvent circuler gratuitement sur le réseau grâce à la Geneva Transport Card. Cette carte, valable pour la durée de leur séjour, est financée grâce à une augmentation de la taxe de séjour.