První městskou hromadnou dopravou v českých zemích byla koňka: v Brně vyjela 17. srpna 1869, v Praze o šest let později. Koně tahaly vozy po kolejích ve městech dvacet let, v Brně je mezi lety 1884 a 1899 střídaly i parní tramvaje. Zlom přinesla elektřina — František Křižík ji na tramvajové trati předvedl v Praze v roce 1891 a do konce století jezdily elektrické tramvaje v Praze, Brně, Plzni (1899, od začátku jen elektricky) i Olomouci (1. dubna 1899). Elektrické podniky královského hlavního města Prahy, předchůdce dnešního DPP, vznikly 1. září 1897.
Menší města přidávala tramvaje ještě před první válkou: Opava v prosinci 1905, Jihlava v srpnu 1909. Ve stejné době se objevily první autobusy — Děčín se hlásí k prvenství z roku 1906, kdy Friedrich Leinweber zahájil pravidelnou linku mezi Děčínem a Podmokly dvěma vozy.
Trolejbus, tedy tramvaj bez kolejí, přišel do českých měst ve třicátých a čtyřicátých letech: Plzeň jej má od roku 1941, Zlín od 27. ledna 1944, kdy vyjely linky A, B a C. Po válce trolejbusy nahradily tramvaje tam, kde byla síť malá a zastaralá — v Jihlavě od 19. prosince 1948, v Brně přibyly v roce 1949, v Opavě vyjely 24. srpna 1952 a tramvaje tam dojezdily 22. dubna 1956. Pardubice dostaly trolejbusy v roce 1952, Děčín je provozoval od roku 1950 jen do roku 1973, kdy je vytlačil rostoucí automobilový provoz.
Autobusy se v padesátých letech staly páteří městské dopravy v okresních městech: dopravní komunální podniky vznikaly kolem roku 1950 (Pardubice, Karlovy Vary 1954) a v mnoha městech vozil lidi národní podnik ČSAD, z jehož závodů jsou dnešní regionální dopravci. Praha otevřela v roce 1974 první linku metra.
Z komunálních podniků se v devadesátých letech staly akciové společnosti měst — Liberec 1993, Olomouc 1994, Most a Litvínov i Děčín 1995, Hradec Králové 1997, Plzeň 1998. Nové trolejbusové sítě přibyly v Chomutově a Jirkově (1. července 1995) a v Českých Budějovicích, kde se trolejbusy vrátily v roce 1991. Kde město vlastní podnik nemá, jezdí MHD soukromí a krajští dopravci: Arriva, Transdev, ČSAD, BusLine, ICOM nebo krajské příspěvkové organizace jako Dopravní společnost Ústeckého kraje.
Od roku 2000 se městská doprava propojuje s krajskou do integrovaných systémů — Pražská integrovaná doprava, IDS JMK v Brně, ODIS na severní Moravě, IDOL na Liberecku, Doprava Ústeckého kraje, IDSOK, IDPK, IDESKA, Veřejná doprava Vysočiny, IREDO nebo ID ZK. Jedna jízdenka, karta nebo aplikace platí v městských i regionálních spojích a ve vlacích. Města zároveň zkoušejí, co s cenou: Litoměřice mají MHD od 1. května 2018 zdarma, Hranice také, Frýdek-Místek za symbolickou korunu ročně, jinde jezdí zdarma senioři nebo děti. A vozový park se elektrifikuje znovu — Nový Jičín jezdí od roku 2017 jen elektrobusy, Bílina od roku 2018, elektrobusy přibývají v Praze, Třebíči, Přerově i Hranicích.