محمدشاه سه سال بعد از آغاز پادشاهی‌اش، تصمیم گرفت تا حاکم هرات را سرکوب کند. انگلیسی‌ها سفیری به دربار محمد‌شاه فرستادند تا او را از این کار منصرف کنند ولی محمد‌شاه به آنها اعتنایی نکرد و به سوی آن سرزمین لشکر کشید. از طرف دیگر کامران میرزا حاکم هرات با وعده‌هایی که از انگلیسی‌ها دریافت کرده بود تصمیم به مبارزه با محمد‌شاه گرفت.محمد‌شاه قبل از دستیابی به هرات قلعه مستحکم غوریان در نزدیکی آن شهر را فتح کرد. انگلیسی‌ها که از فتح هرات به وسیله محمد‌شاه می‌ترسیدند، سفیر خویش (سر جان مک نیل) را به نزد‌شاه ایران فرستادند تا مانع تصرف هرات به دست او شوند. از طرف دیگر یکی از افسران توپ چی خویش را به کمک کامران میرزا فرستادند.

سر جان مک نیل که نتوانسته بود محمد‌شاه را از تصرف هرات باز دارد و از طرف دیگر بیم داشت هرات به وسیله او فتح شود به سرعت به تهران باز گشت و از طرف دولت متبوع خویش به ایران اعلان جنگ داد، با وجود اینکه انگلیسی‌ها در عهد‌نامه مفصل قول داده بودند که در مسائل مربوط به ایران و افغانستان مداخله نکنند بعد از اعلان جنگ به ایران، رزم ناوهای آن کشور به تصرف جزیره خارک پرداخته و بعد از فتح این جزیره به بندر بوشهر نزدیک شدند، از طرف دیگر محمد‌شاه که به یاری روس‌ها دل خوش کرده بود، نمی‌دانست که آنها قبلا با انگلیسی‌ها صلح کرده و متعهد شده‌اند که با ایران کاری نداشته باشند، بنابراین ناچار شد دست از محاصره هرات بردارد و در سال ۱۲۵۴ هجری قمری به تهران بازگشت.سرانجام محمد‌شاه قاجار در سن ۴۲ سالگی بعد از ۱۴ سال و ۳ ماه سلطنت به دلیل مرض نقرس از دنیا رفت.