לבסוף הצבא הפליג משם ב-20 ביוני והגיע לקובה כעבור יומיים. לאחר מאבק ב-24 ביוני, הצבא נלחם בספרדים ב-2 ביולי ליד גבעת סן חואן. לאחר קרב ארוך, האמריקנים ניצחו, במחיר כבד. תאודור רוזוולט, שתכנן את המלחמה הימית כסגן מזכיר הצי, התפטר והפך ללוחם, והפך לגיבור לאומי. התהילה הפכה אותו למושל ניו יורק בסתיו 1898. למחרת היום, פלוגה ספרדית הושמדה. ב-17 ביולי, קובה הייתה תחת שליטה אמריקנית. בנוסף, התבצעה פלישה לפוארטו ריקו, ללא התנגדות משמעותית. הריחוק מספרד והשמדת הצי פגעו בספרד, והיא החלה לנסות לסיים את המלחמה.
הסכם שלום.
ב-22 ביולי, מינו הספרדים את השגריר הצרפתי בארצות הברית לייצג אותם בשיחות השלום. הספרדים ביקשו להגביל את המשא ומתן לקובה, אולם נאלצו להכיר בכך שמקינלי כבש את שאר המושבות. הקבינט הסכים שיש להשיג את קובה ופוארטו ריקו, אולם לא הסכים בנוגע לפיליפינים: חלקם דרשו סיפוח האי ואחרים ביקשו הצבת בסיסים ימיים שם. הציבור תמך בסיפוח, אולם מנהיגים כברייאן וקליבלנד, ומתנגדים לאימפריאליזם, התנגדו לכך. מקינלי החליט שאין לו ברירה אלא לשמור את הפיליפינים כדי למנוע מיפן להשתלט עליהם.
מקינלי הציע לפתוח את השיחות על בסיס שחרור קובה וסיפוח פוארטו ריקו, ללא הכרזה בדבר הפיליפינים. הצבא האמריקני חלה בקדחת צהובה בקובה, אולם מקינלי נותר איתן בעמדתו. ספרד הסכימה להפסקת אש ב-12 באוגוסט, ובספטמבר הצדדים נפגשו בפריז. ב-18 בדצמבר נחתם הסכם פריז. ארצות הברית השיגה את פוארטו ריקו, הפיליפינים וגואם, וספרד יצאה מקובה. ארצות הברית שילמה לספרד עשרים מיליון דולרים. למקינלי היה קושי בגיוס שני שלישים מהסנאט לתמיכה בהסכם, אולם לחץ מאסיבי הוביל לאישור ההסכם ב-6 בפברואר 1899. קובה עברה לשלטון אמריקני זמני.
קובה נהרסה מהמלחמה ומהשלטון הספרדי, ומקינלי סירב להכיר במורדים כממשלה הרשמית של האי. אף על פי שתמך בסיפוח קובה, החלטת הקונגרס חייבה אותו, והוא הקים ממשל צבאי על האי עם כוונה להעניק עצמאות. הקונגרס העביר את תיקון פלאט, שהתנה את יציאת ארצות הברית מהאי בתמורה להשפעה אמריקנית. קובה הפכה לעצמאית ב-1902, אולם ארצות הברית כבשה אותה שוב ב-1906. מקינלי סירב להכיר בממשלה הפיליפינית של אמיליו אגינלדו והיחסים בין הממשלות הידרדרו. בפברואר 1899, החלו הכוחות להתנגש במה שהפך למלחמת ארצות הברית–הפיליפינים. אגינלדו השתמש בלוחמת גרילה. מקינלי שלח ועדה בהנהגת ויליאם הווארד טאפט כדי להקים ממשל אזרחי, ומינה אותו לתפקיד המושל. אגינלדו נתפס במרץ 1901, וארצות הברית שלטה באי עד ל-1946.
סיפוח הוואי.
במהלך המלחמה, רצה מקינלי לספח את רפובליקת הוואי. הרפובליקה החדשה, שנשלטה בידי אינטרסים אמריקניים, הדיחה את המלכה ב-1894. ממשל הריסון הביא הסכם סיפוח לסנאט, אולם קליבלנד שלח שגריר מיוחד לאי, והחליט שהמהפכה לא מייצגת את רצון האזרחים בהוואי. גם מגדלי הסוכר התנגדו לכניסה של מגדלי סוכר מהוואי לשוק. האמריקנים תמכו בסיפוח, והרעיון צבר תאוצה במהלך המלחמה שהפגינה את הצורך בבסיסים צבאיים, כפי שטען אלפרד תייר מהן. מקינלי עצמו תמך בסיפוח ולחץ על הקונגרס, כדי למנוע השתלטות יפנית או מהפכה נגדית. בגלל הקושי בהשגת תמיכה בסנאט, שיתף מקינלי פעולה עם הדמוקרטים והשיג תמיכה בשני בתי הקונגרס. הוואי סופחה ב-8 ביולי 1898.
סין: דלת פתוחה ומרד.
לאחר שמקינלי השיג מושבות באוקיינוס השקט, הוא הרחיב את יכולת המדינה להתחרות על סחר בסין. אפילו לפני שיחות השלום, ביקש מקינלי מהקונגרס לבחון אפשרויות סחר בסין ולהנהיג מדיניות של "דלת פתוחה", בה כל המדינות יסחרו עם סין ולא יפגעו בשלמותה הטריטוריאלית. לאחר שג'ון היי נכנס לתפקיד מזכיר המדינה, הוא שלח מזכרים בנוגע לעניין למעצמות אירופאיות. בריטניה תמכה ברעיון, רוסיה התנגדה, ואילו צרפת, גרמניה, איטליה ויפן הסכימו להסכם סחר משותף.
הסחר עם סין נדחה כשמרד הבוקסרים התרחש כנגד המעורבות הזרה בסין. אמריקנים ומערביים אחרים היו לכודים בפקינג, ומקינלי שלח 5,000 חיילים לעיר ביוני 1900. הם חולצו כעבור חודש, אולם הדמוקרטים בקונגרס התנגדו לשליחת חיילים ללא אישור הקונגרס. מקינלי קבע תקדים, ורוב יורשיו השתמשו בסמכות זאת על הצבא. לאחר סיום המרד, המשיכה ארצות הברית במדיניות הדלת הפתוחה. תלמידים סינים באו ללמוד בבתי ספר אמריקניים.
תכנון תעלת פנמה.
בבית, ניהלו מקינלי והיי משא ומתן עם בריטניה בנוגע לכריית תעלה באמריקה המרכזית. ההסכם בין שתי המדינות מ-1850 אסר על כריית תעלה, אולם המלחמה הוכיחה את הצורך בקשר בין המקומות. העסקים האמריקניים והאינטרסים הצבאיים התעמקו באסיה, וכעת היה נחוץ לכרות תעלה. מקינלי החליט לפתוח את ההסכם, והוסכם שארצות הברית תשלוט בתעלה כל עוד היא תהיה פתוחה לכל הספינות. מקינלי היה מרוצה מכך, אולם הסנאט דרש את זכותה של ארצות הברית לחסום את התעלה. היי הציע להתפטר בעקבות הכישלון, אולם מקינלי ביקש ממנו להמשיך במשא ומתן. הוא הצליח, והסכם חדש אושר לאחר הירצחו של מקינלי. תעלת פנמה הושלמה ב-1914.
בחירות 1900.
הרפובליקנים הצליחו בבחירות המקומיות ב-1899, ומקינלי היה אופטימי בנוגע לסיכוייו להיבחר. האהדה כלפיו הבטיחה שיזכה במועמדות. השאלה הייתה לגבי סגנו: הוברט מת בסוף 1899. מקינלי תמך באליהוא רוט, מזכיר המלחמה שלו, אולם הוא החליט להשאיר אותו בתפקיד מזכיר המלחמה. הוא שקל אחרים, אולם האהוד ביותר מביניהם היה תאודור רוזוולט. לאחר תקופה כסגן מזכיר הצי, רוזוולט התפטר ונלחם באומץ כחלק מחיל הפרשים בקובה, כשהוא חוזר לארצות הברית עטוף בתהילה. הוא נבחר למושל ניו יורק ב-1898 ותמך ברפורמה. תומכים רבים המליצו עליו כסגנו של מקינלי, ורוזוולט האמין שכך יוכל להיבחר לנשיא בעצמו. האנה התנגד לכך, כיוון שרוזוולט היה אימפולסיבי מדי. המנהיגים הפוליטיים של ניו יורק, שרצו להמעיט בהשפעתו של רוזוולט, תמכו בו כדי שיתפטר מתפקיד המושל.
הוועידה הרפובליקנית התחילה ביוני בפילדלפיה, ורוזוולט זכה לתמיכה רחבה. ב-21 ביוני, מקינלי נבחר מחדש ורוזוולט נבחר גם הוא. הוועידה הדמוקרטית התכנסה כעבור חודש בקנזס סיטי ושוב בחרה בברייאן.
המועמדים היו דומים, אולם הנושאים השתנו: הכסף החופשי המשיך להיות חשוב למצביעים רבים, אולם הרפובליקנים התמקדו בניצחון במלחמה ובשגשוג מבית. הדמוקרטים ידעו שהמלחמה הייתה אהודה, והאימפריאליזם פחות, ולכן התמקדו בנושא המונופולים והתאגידים, והציגו את מקינלי כמשרת ההון והעסקים הגדולים. ברייאן נאם בכל רחבי המדינה ומקינלי נשאר בביתו, ונאם רק נאום אחד, בו קיבל את המועמדות. רוזוולט היה הדובר הראשי והאנה הצליח לפתור שביתה של כורי הפחם בפנסילבניה.
ברייאן לא הלהיב את הבוחרים כמו ב-1896, והיה ברור שמקינלי יבחר שוב. ב-6 בנובמבר, הוא נבחר שוב, בניצחון הגדול ביותר של רפובליקני מאז 1872. מחוץ לדרום, ברייאן ניצח רק בארבע מדינות, ומקינלי אף זכה במדינתו של ברייאן, נברסקה, בה זכה ברייאן ב-1896 בהפרש של 13,000 קולות, והפעם בהפרש של 7,000 קולות. הסיבות לניצחון היו השגשוג, קריסת הפופוליזם, מסע הבחירות הרפובליקני וההתרחקות של ברייאן מבסיס הבוחרים שלו.
כהונה שנייה.
לאחר כניסתו לתפקיד ב-4 במרץ, סייר מקינלי במדינה במשך שישה שבועות ברכבת. ביקורו היה אמור להסתיים ב-13 ביוני 1901, בתערוכה כל אמריקאית בעיר באפלו. אידה מקינלי חלתה בקליפורניה, ומקינלי החליט לדחות את ביקורו בתערוכה לספטמבר ולבטל נאומים שתכנן.
ההתנקשות בחייו.
מקינלי אהב לפגוש את הציבור, אולם רבים דאגו לביטחונו. בתקופה זו היה האנרכיזם המיליטנטי בגאות באירופה. מעשים כרצח המלך האיטלקי אומברטו הראשון, ואליזבת, נסיכת בוואריה לבית הבסבורג, בשם הרעיון האנרכיסטי, השפיעו על רבים מבין המעמדות הנמוכים באירופה ומעבר לים. בארצות הברית נשאה האנרכיסטית האמריקנית-יהודייה, אמה גולדמן, נאומים חוצבי להבות בזכות עולם ללא מעמדות, ללא רעב וללא דיכוי ממשלתי.
ניסו לבטל את ביקורו של מקינלי בתערוכה, אולם הוא סירב, והאבטחה עליו הוגברה. ב-5 בספטמבר, נאם בפני 50,000 אנשים. הוא דרש הסכמי סחר עם מדינות אחרות כדי לחזק את הייצוא האמריקני.
בין האנרכיסטים ששמעו את נאומיה של גולדמן היה ליאון צ'ולגוש, בחור צעיר, בן למהגרים ממוצא פולני רוסי. ביום 6 בספטמבר 1901, כאשר ביקר מקינלי בתערוכה כל אמריקאית בעיר באפלו, ניגש צ'ולגוש אל שורת מקבלי הפנים, כשהוא חבוש בידו. בתוך התחבושת החביא צ'ולגוש אקדח, שבו ירה בנשיא מטווח קצר. הנשיא התמוטט, ומת ב-14 בספטמבר 1901, והיה בכך לנשיא האמריקני השלישי שנרצח בהתנקשות. צ'ולגוש לא נתן רקע אידאולוגי מעמיק למעשהו, ורק אמר שהוא "הרג את אויבם של האנשים הטובים... האנשים העובדים". לאחר משפט קצר הורשע צ'ולגוש, והוצא להורג בכיסא חשמלי, כחודשיים לאחר הרצח.
הרופאים לא זיהו את הכדור בקיבתו של מקינלי שהרעיל את דמו. תאודור רוזוולט הובהל להשבעה כנשיא בבאפלו.
בתור רצח פוליטי – אם אכן היה לצ'ולגוש מניע שניתן להגדירו כפוליטי והוא לא היה קרבן למחלת נפש – היה הרצח כישלון מוחלט: הרצח הביא לגל של הסתה כנגד התנועה האנרכיסטית בארצות הברית, וגרם לכך שב-1903 העביר הקונגרס חוק האוסר את כניסתם של אנרכיסטים לארצות הברית, וזאת כסדק ראשון בעיקרון שהיה עד אז מקודש, עיקרון זכות הכניסה החופשית. הנשיא הבא, תאודור רוזוולט, היה נשיא נמרץ ותקיף, שהמשיך במובנים רבים את מדיניותו של מקינלי. אם השפיע הרצח על ההיסטוריה, פרט להשפעה הפרסונלית בכך שהחל את תקופת כהונתו החשובה של רוזוולט, הרי שהשפיע בדיוק בכיוון ההפוך מרוח האנרכיזם.