بعد أن كتب الله النصر للمؤمنين في غزوة حنين ، توجه رسول الله صلى الله عليه وسلم في شوال عام 8هـ قاصداً الطائف يريد فتحها ، وانتدب لتلك المهمة خالد بن الوليد رضي الله عنه ؛ حيث جعله على مقدمة الجيش ، وطلب منه أن يسير أولاً لمحاصرتها .
وكانت قبيلة ثقيف - وهم أهل الطائف- قد حصنت مواقعها ، وأعدت عدتها ، وتهيأت للقتال ، والدفاع عن أرضها.
ولما وصل رسول الله صلى الله عليه وسلم إلى الطائف نزل قريباً من الحصن ، وأقام معسكره فيه ، فانتهزت ثقيف الفرصة ، وأخذت توجه سهامها إلى معسكر المسلمين ، فأصابت منهم اثنا عشر رجلاً ، كان منهم : عبدالله بن أبي بكر رضي الله عنه الذي استشهد على أثر رمية أصابت منه مقتلاً.
واستمر حصار رسول الله صلى الله عليه وسلم للطائف قرابة أربعين يوماً ، تخللها العديد من المناوشات بين المسلمين والمشركين ، ورغبة في إضعاف معنويات ثقيف ، أخذ المسلمون في تحريق نخلهم ، فناشدوا رسول الله صلى الله عليه وسلم أن يدعها لله وللرحم ، فاستجاب لهم ، ثم نادى منادي رسول الله صلى الله عليه وسلم : " أيما عبد نزل من الحصن وخرج إلينا فهو حر" ، فخرج منهم بضعة عشر رجلاً ، فأعتقهم رسول الله صلى الله عليه وسلم ، ودفع كل رجلٍ منهم إلى رجلٍ من المسلمين ليقوم بشأنه واحتياجاته.
ولما طال الحصار ، وأصيب عدد من المسلمين استشار الرسول صلى الله عليه وسلم بعض القوم ، ثم قرر رفع الحصار والرحيل ، فعن عبد الله بن عمرو قال :حاصر رسول الله صلى الله عليه وسلم أهل الطائف ، فلم ينل منهم شيئا ، فقال : ( إنا قافلون إن شاء الله ، قال أصحابه : نرجع ولم نفتتحه ، فقال لهم رسول الله صلى الله عليه وسلم : اغدوا على القتال ، فغدوا عليه فأصابهم جراح ، فقال لهم رسول الله صلى الله عليه وسلم : إنا قافلون غدا ، فأعجبهم ذلك، فضحك رسول الله صلى الله عليه وسلم )رواه البخاري ومسلم
وتروي كتب السير أن بعض الصحابة أتوا رسول الله وقت الحصار ، وقالوا : يا نبي الله ، ادعُ الله على ثقيف ، فقال رسول الله صلى الله عليه وسلم : ( اللهم اهد ثقيفاً وأت بهم ).
ثم أذن مؤذن رسول الله بالرحيل ، فرحل الجيش وهم يقولون : ( آيبون تائبون عابدون لربنا حامدون ) .
وهكذا عاد المسلمون من غزوة الطائف ، منتصرين وإن لم يفتحوا الحصن ، منتصرين بإيمانهم ، وثباتهم ، وصبرهم ، إضافة لما حصل من استسلام بعض أهل الطائف وإسلامهم