La zona que hoy día ocupa Karachi fue antiguamente un grupo de pequeños pueblos entre los que estaba Kalachi-jo-Kun y Manora. Poco se sabe de la historia anterior al siglo XIX, se cree que la ciudad de Krokola llamada así por uno de los generales de Alejandro Magno es Karachi. Cuando Muhammad bin Qasim llegó a la India en 712 durante la expansión islámica ocupó la ciudad de Debul, hoy dentro de la aglomeración.
En 1729 Kolachi-jo-Goth, que hasta entonces había sido un pueblo pesquero, fue transformada en un puerto comercial que enlazaba con Bahrein. En 1795 la ciudad pasó de manos del Khan de Kalat para integrarse en Sindh.
La importancia de Karachi hizo que fuese captura por los británicos el 3 de febrero de 1839, iniciando la era colonial que no terminaría hasta 1947. El 10 de septiembre de 1857 hubo una rebelión anticolonial, pero fue sofocada en pocos días.
En 1876, el fundador del futuro Pakistán, Muhammad Ali Jinnah nació en la ciudad. La ciudad era por entonces un puerto con ferrocarril, iglesias, y calles pavimentadas. Muchos de los edificios que aún permanecen de esa época fueron construidos al estilo clásico británico, contrastando con el "Gótico Mughal" de Lahore.
En 1900 era el mayor puerto exportador de trigo de Asia.
La ciudad fue declarada capital de la recién formada provincia de Sindh en 1936, sustituyendo a Hyderabad, que lo había sido del estado independiente.
En 1947, Karachi se convirtió en capital del nuevo estado de Pakistán. Por entonces era una ciudad de sólo 400.000 habitantes, aumentando en años posteriores gracias a su nueva condición. Después la capital se trasladó a Rawalpindi y más tarde a Islamabad, conservando Karachi la capitalidad económica del país.
La ciudad fue escenario durante los años 1980 de conflictos religiosos entre las comunidades sunní y chií.