تهران در دوره تسلط افغانها
در اين دوره اگرچه پارهاى از مناطق ايران تسليم ايرانيان شرقى (قندهارى و کابلى و ...) شده بود، اما شهرهايى هم در دفاع از سلطنت صفويه مقاومت نشان دادند، از جمله تهران که اندکاندک به صورت يکى از مناطق برجسته نظامى در مىآمد. شاه تهماسب دوم، جانشين پادشاه مقتول، در سال ۱۱۳۷هـ.ق از همين شهر احمدخان تفنگچي را نزد فتحعلىخان قاجار قوانلو به استرآباد فرستاد و از او براى مقابله با افغانها مدد خواست. تهران و قزوين در برابر افغانها مقاوم بودند. اشرف افغان که پس از فتح اصفهان به سوى شمال حرکت کرده بود، از راه قم خود را به تهران رساند و در حوالى ابراهيمآباد ميان دو لشکر افغان و فتحعلىخان قاجار که به مدد شاه تهماسب با جنگجويان ايل به تهران آمده بود، نبرد سختى درگرفت. در اين کشمکشها تهران آسيب فراوان ديد و سرانجام به دست افغانها افتاد. آنها در ارگ تهران جاى گرفتند و براى جلوگيرى از حمله احتمالى مردم شهر روى خندق شمال ارگ پل بستند و جلوى آن دروازهاى ايجاد کردند.
پس از قدرتگيرى نادرشاه در سپاه شاه تهماسب، خاصه پس از تاجگذارى وي، موقعيت تهران دگرگون شد. در دوره سردارى نادر سرانجام افغانها مجبور به ترک تهران شدند.
تهران دوره افشاريه
پس از پايان غائله افغان و آغاز زمامدارى نادرشاه، تهران همچنان در راه توسعه گام برمىداشت. با آن که در اين دوره پايتخت ثابتى وجود نداشت و مرکزيت حکومتى و ادارى هم در اصفهان نگه داشته شده بود، تهران براى نادرشاه اهميت نظامى يافت و توجه او به تهران به گونهاى بود که در سال ۱۱۵۲هـ.ق فرزند و وليعهد خود رضاقلى ميرزا را به حکومت تهران مأمور کرد و تمام ولايت به تيول وى درآمد.
تهران دوره زنديه
با غلبه زنديان و پيروزى کريمخان زند بر محمدحسنخان قاجار و فتح تهران در سال ۱۱۷۲هـ.ق کريمخان زند در تهران به سلطنت رسيد. در اين دوره اندک رونقى در اوضاع و احوال تهران پديد آمد. کريمخان زند براى آبادانى تهران کوشش بسيار کرد. دو محله بزرگ به نامهاى عودلاجان و چالميدان از ترکيب محلههاى کوچک سابق به وجود آمد و بيشترين جمعيت شهر را در خود جاى داد. کاروانسرها، دکانها و محل کار بازرگانان و پيشهوران در بخشى مترکز شد و به مرور بازار تهران پدين آمد.
کريمخان به علت درگيرى و کشمکش با محمدحسن خان قاجار و کاستن حمايت ترکمنها از محمدحسنخان، مجبور شد به شيراز برود. از اين رو در سال ۱۱۷۶هـ.ق حکومت تهران را به غفورخان واگذار نمود و پايتخت را از تهران به شيراز منتقل کرد. اهميت تهران از همين زمان شروع شد. در پايان دوره زنديان تهران سيماى شهر يافت و از زمانى که لشگريان قاجاريه به سرکردگى مجنونخان پازوکي آن را گشودند (۱۱۹۹هـ.ق) به صورت شهرى کامل جلوهگر شد.