محمدحسن‌خان فرزند فتحعلى‌خان قاجار است. فتحعلى‌خان در روزگار دربه‌درى شاه تهماسب دوم به استعانت وى روى آورد. او در حين محاصره مشهد به‌وسيلهٔ نادر، مورد سعايت نيز قرار گرفت و به‌دستور تهماسب از پاى درآمد. محمدحسن‌خان در هنگام کشته‌شدن پدر دوازده ساله بود. وى در تمام مدتى که نادر قدرت را در اختيار داشت در ميان ترکمانان يموت که هواخواهان خاندان وى محسوب مى‌شدند به‌صورت نيمه مخفى زندگى مى‌کردند.


عادلشاه، که پس از عم مستبد خود زمام امور را در دست گرفته بود، چون مى‌خواست نشان دهد که ستمديگان دروه نادرى را استمالت مى‌کند خان قاجار را نزد خويش خواند و به منصب ايشيک آقاسى باشيگرى منصوب کرد. خان قاجار به‌دليل احساس خطر از طرف شاه جديد و درباريان، پس از اندک مدتى به استرآباد گريخت. در نبردى که متعاقباً بين او و عادلشاه روى داد برخى از افراد خانواده وي، از جمله فرزند ارشد وي، آقا محمد‌خان، به اسارت درآمدند و آن پسر به‌دستور عادلشاه مقطوع النسل گرديد (نوائي، عبدالحسين؛ کريم‌خان زند؛ ص ۷۴). سرانجام محمد‌حسن‌خان قاجار از طرف شاه سليمان ثانى به حکومت گرگان منصوب شد و پس از ورود به حوزه مأموريت شمالى ايران روى آورده بود، مازندران را نيز تصرف کرد. او در سال ۱۱۶۵ق به قصد تسخير گيلان از راه کناره درياى مازندران حرکت کرد؛ ولى با شنيدن خبر حرکت سپاه زند به طرف شمال با عجله به گرگان بازگشت (تاريخ گيتى‌گشا؛ ص ۲۸).


اولين نبرد ميان خان زند و خان قاجار هنگامى که وکيل‌الدوله پس از انتظام امور فارس و اصفهان به همراهى شاه‌اسماعيل سوم عازم تسخير شهرهاى شمالى شده بود روى داد. خان زند پس از تصرف شهرهاى قزوين، رشت و لاهيجان به گرگان حمله برد؛ اما در خلال عمليات جنگي، دشمن با روبنه سپاه او را تاراج کرد و شاه‌اسماعيل سوم نيز به اردوى خان قاجار پيوست. وکيل که با کمبود شديد آذوقه مواجه بود ناچار گرگان و تهران را رها کرد و به اصفهان بازگشت. سپس بعد از چند هفته توقف در اين شهر که قصد سرکوب دشمن قديم خود على‌مردان‌خان که قصد تصرف کرمانشاهان را داشت عازم نواحى غربى کشور گرديد (تاريخ گيتى گشا؛ ص ۲۹. و شميم، على‌اصغر، از نادر تاکودتاى رضاخان ميرپنج؛ ص ۱۳۱).


پس از پيروزى کريم‌خان بر آزادخان افغان در نبرد ”خشت“، خان افغان ناچار شد اصفهان را هم ترک کند؛ زيرا محمد‌حسن‌خان قاجار قصد تصرف مرکز قدرت وى در آذربايجان را داشت. بدين ترتيب، آزادخان با شتاب فراوان خود را به آن نواحى رساند. کريم‌خان بار ديگر براى مقابله با محمد‌حسن‌خان، سردار معروف خود، شيخ‌على‌خان زند را با پانزده هزار سپاهى به مقابله وى فرستاد؛ اما او در کزار (از بلوک اراک) از سردار قاجار شکست خورد. وکيل خود از اصفهان خارج شد و در گلون‌آباد با لشکر قاجار درگير گرديد، ولى کارى از پيش نبرد و محمد‌حسن‌خان بر او غلبه کرد و اصفهان نيز به تصرف سپاه قاجار درآمد. کريم‌خان به شيراز بازگشت و متعاقب او محمدحسن‌خان آن شهر را محاصره کرد. کريم‌خان با شنيدن خبر حرکت آزادخان افغان به تهران پس از يک هفته دست از محاصره شهر کشيد و به جانب شمال حرکت کرد. او پس از نبردهائى با آزادخان در لاهيجان و بعد در اورميه که به سختى وى را شکست داد آذربايجان را از او بازگرفت و بار ديگر به سوى شيراز عزيمت کرد (تاريخ روضةالصفاى ناصري؛ ج۹، ص ۵۵. و فارسنامهٔ ناصري؛ ج۱، ص ۵۹۷-۵۹۸).


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


پس از شکست محمد‌حسن‌خان تهران و مناطق کناره درياى مازندران تحت‌ نفوذ کريم‌خان درآمد. شاه‌اسماعيل سوم که از اردوى فاجار گريخته و به سپاه زند پيوسته بود، در تهران به حضور وکيل رسيد و با احترام پذيرفته شد. خبر فتوحات کريم‌خان در برابر خان قاجار سبب شد که مردم کرمان و نواحى جنوب شرقى هم اطلاعت از وى را بپذيرند (از نادر تاکودتاى رضاخان ميرپنج؛ ص ۱۳۸-۱۳۹).