במרץ 1884 חידשו הצרפתים את מתקפתם בפיקודו של גנרל צ'ארלס-ת'ודור מילוט, שקיבל על עצמו את האחריות למערכה הקרקעית מאדמירל קורבה לאחר נפילתה של סון טאי. תגבורות מצרפת והמושבות האפריקאיות העלו עתה את כוחו של חיל המשלוח של טונקין ליותר מ־10,000 איש, ומילוט ארגן כוח זה לשתי חטיבות. החטיבה הראשונה הייתה בפיקודו של הגנרל לואי ברייר דה אייל, שרכש את שמו בעבר כמושל סנגל, והבריגדה השנייה הייתה בפיקודו של גנרל כריזמטי, פרנסואה דה נג'רייר, שזכה לתהילה במרד ערבי שהיה באלג'יריה. היעד הצרפתי היה ביץ' נינה (Bắc Ninh) שהוחזק על ידי כוח חזק של חיילים סינים קבועים של צבא גואנגשי. המבצע בביץ' נינה היה כמסע רגלי לצרפתים. המורל בצבא הסיני היה נמוך, וליו יונגפו הקפיד לשמור על מרחק מהסכנה. מילוט עקף את ההגנות הסיניות מדרום-מערב ותקף את העיר ב-12 במרץ מדרום-מזרח, בהצלחה מלאה. צבא גואנגשי גילה התנגדות רפה, והצרפתים כבשו את העיר בקלות, לכדו כמויות גדולות של תחמושת וכמה תותחים תוצרת קרופ חדשים.
הסכם טינטג'ין.
התבוסה בביץ נינה, חיזקה את ידו של הפלג המתון בממשלה הסינית. הצלחות צרפתיות נוספות באביב 1884, כולל לכידתו של האנג הואה ותאי נגוין, שכנעו את הקיסרית האלמנה כי על סין להשלים עם צרפת, והושג הסכם בין צרפת לסין בחודש מאי. המשא ומתן התקיים בטיינג'ין (טינטסין). לי הונג-ג'אנג, מנהיג המתונים הסינים, ייצג את סין; וקפטן פרנסואה-ארנסט פורנייה, ייצג את צרפת. הסכם טינטסין, שהסתיים ב־11 במאי 1884, סיפק את ההכרה הסינית בחסות הצרפתית על אנאם (דרום וייטנאם) וטונקין ועל נסיגת הכוחות הסינים מטונקין, בתמורה לאמנה מקיפה שתסדיר את פרטי הסחר בין צרפת לסין ותספק את קביעת גבולותיה עם וייטנאם.
ב־6 ביוני המשיכו הצרפתים את מדיניותם, בכך שחתמו על חוזה חדש עם הווייטנאמים, שאפשרו לצרפתים להציב חיילים בנקודות אסטרטגיות בשטח וייטנאם וליישב תושבים בערים הגדולות. חתימת האמנה לוותה במחווה סימבולית חשובה - החותם הומלך על ידי הקיסר של סין לפני כמה עשורים כמלך וייטנאמי,
פורנייה לא היה דיפלומט מקצועי, והסכם טינטסין הכיל מספר בעיות: הוא לא קבע במפורש תאריך יעד לנסיגת הכוחות הסינים מטונקין. הצרפתים טענו כי נסיגת הכוחות תתבצע מיד, ואילו הסינים טענו כי הנסיגה מותנית בהמשך המשא ומתן על אמנה מקיפה. למעשה, העמדה הסינית היא רציונליזציה שנועדה להצדיק את חוסר רצונם או אי יכולתם להפעיל את תנאי ההסכם שחתמו. ההסכם לא היה פופולרי במיוחד בסין, ועורר תגובות פוליטיות נגדו.
מארב בק לי.
לי הונג-צ'אנג רמז לצרפתים שאולי יהיו קשיים באכיפת ההסכם, אך לא נאמר דבר ספציפי. הצרפתים הניחו שהחיילים הסינים יעזבו את טונקין כפי שהוסכם, וערכו הכנות לכיבוש עיירות הגבול. בתחילת יוני 1884 התקדם טור צרפתי בפיקודו של סגן אלוף אלפונס דוגן כדי לכבוש את לנגסון. ב־23 ביוני, ליד העיירה הקטנה ביץ', נתקלו הצרפתים ביחידה חזקה של צבא גואנג-שי, שהתפרסה בעמדות התגוננות מאחורי נהר סונג תונג. לנוכח המשמעות הדיפלומטית של תגלית זו, היה על דוגן לדווח על נוכחות הכוח הסיני להאנוי ולחכות להנחיות נוספות. במקום זאת, הוא נתן לסינים אולטימטום לנסיגה. הסינים פתחו באש על הצרפתים המתקדמים, מה שהוביל לקרב בן יומיים, שבו הטור של דוגן היה מוקף ומוכה. דוגן בסופו של דבר פילס את דרכו אל מחוץ לכיתור הסיני וחילץ את כוחו הקטן.
כאשר הגיעו לפריז הידיעות על המארב לכוח הצרפתי, הם הגבירו את הזעם של מה שהתפרש כבגידה סינית בוטה. ממשלת פרי דרשה התנצלות, שיפוי, ומימוש מיידי של תנאי הסכם טיאנג'ין. ממשלת סין הסכימה לנהל משא ומתן, אך סירבה להתנצל או לשלם כל שיפוי. מצב הרוח בצרפת היה נגד פשרה, ואף שהמשא ומתן נמשך בכל חודש יולי, נצטווה אדמירל קורבה לקחת את השייטת שלו לפוג'ואו (פוצ'או). הוא קיבל הוראה להתכונן לתקוף את צי הפוג'יאנים הסיניים בנמל ולהרוס את מספנות הצי. בינתיים, כהפגנה ראשונית של מה היה קורה אם הסינים היו עומדים בסירובם, אדמירל סבסטיאן לספהרוס תקף שלוש סוללות חוף סיניות בנמל קילונג בצפון פורמוזה (טאיוואן) על ידי הפגזות חיל הים ב-5 באוגוסט. הצרפתים הנחיתו את כוח הנחיתה לחוף כדי לתפוס את קילונג ואת מכרות הפחם הסמוכים בפי-טאו, כ"משכון" כדי להתמקח על הנסיגה הסינית מטונקין. אבל הגעתו של כוח צבאי סיני גדול תחת פיקודו של הנציב הקיסרי ליו מינגצ'ואן הכריח את הצרפתים לסגת ב-6 באוגוסט.
מלחמת סין–צרפת.
המבצעים של אדמירל קורבה.
פוז'ו ונהר מיני.
המשא ומתן בין צרפת לסין נשבר באמצע אוגוסט, וב-22 באוגוסט נצטווה קורבה לתקוף את הצי הסיני בפוז'ו. בקרב פוז'ו ב-23 באוגוסט 1884, האירוע שנמשך כשעתיים, ונצפה על ידי של כלי שיט בריטיים ואמריקניים נייטרליים, השייטת של המזרח הרחוק של קורבה השמידה את הצי של סין ופגעה קשות במספנות של הצי בפוצ'ו. תשע ספינות סיניות הוטבעו בתוך פחות משעה, כולל ספינת הדגל של צי פוג'יאן. ההרוגים הסינים נעמדים ב-3,000 איש, ואילו ההרוגים הצרפתיים היו מינימליים. קורבה הצליח לחצות את נהר המיני אל הים הפתוח, והרס כמה סוללות חוף סיניות בדרכו, כאשר לקח את השייטת הצרפתית דרך מעבר מינאן וג'ינפאאי.
מהומות בהונג קונג.
ההתקפה הצרפתית בפוז'ו סיימה למעשה את המגעים הדיפלומטיים בין צרפת לסין. אף כי שום מדינה לא הכריזה מלחמה, הסכסוך הוסדר עכשיו רק בשדה הקרב. הידיעה על הרס צי פוג'יאן חוללה התפרצות של להט פטריוטי בסין, שהביאה להתקפות על זרים ועל רכוש זר. לסין הייתה אהדה רבה באירופה, והסינים הצליחו לשכור כמה קצינים מהצבאות הבריטי, הגרמני והאמריקאי כיועצים.
הזעם הפטריוטי התפשט למושבה הבריטית בהונג קונג. בספטמבר 1884 סירבו עובדי הרציפים בהונג קונג לתקן את האונייה הצרפתית "לה גליסונייר", שסבלה מפגיעת פגזים. השביתה התמוטטה בסוף ספטמבר, אך עובדי הרציפים נמנעו מלהמשיך את עסקיהם על ידי קבוצות אחרות של עובדים סינים. ניסיון של השלטונות הבריטיים להגן על עובדי הרציף מפני הטרדה גרם להתפרעות קשה ב-3 באוקטובר, במהלכה נהרג לפחות מתפרע אחד ונפצעו כמה שוטרים סיקים. הבריטים חשדו, שהתפרעות אורגנו ידי השלטונות הסיניים במחוז גואנגדונג.
הכיבוש הצרפתי של קילונג.
בינתיים החליטו הצרפתים להפעיל לחץ על סין על ידי הנחתה של חיל המשלוח בצפון פורמוזה ותפיסה של קילונג וטמסואי, לפצות על הכישלון של 6 באוגוסט. ב־1 באוקטובר נחת סגן אלוף ברטו-לוויין בקילונג עם כוח של כ-1,800 חי"ר, ואילץ את הסינים לסגת לעמדות הגנה חזקות שהוכנו בגבעות שמסביב. הכוח הצרפתי היה קטן מכדי להתקדם מעבר לקילונג, ומכרות הפחם של פאי-טאו נותרו בידי הסינים. בינתיים, לאחר הפצצה ימית לא יעילה ב-2 באוקטובר, תקף אדמירל לספה את ההגנות הסיניות בטמסאי עם 600 מלחים מחיל הנחיתה של השייטת שלו ב-8 באוקטובר, ונדחק על ידי כוחות בפיקודו של הגנרל הפוג'יאני סאן קאי-הואה. כתוצאה מהיפוך הזה הייתה השליטה הצרפתית בפורמוזה מוגבלת רק לעיר קילונג. ההישג הזה היה נמוך בהרבה ממה שקיוו.
המצור על פורמוזה.
בתחילת ינואר 1885, חיל המשלוח של פורמוזה, שהיה עכשיו תחת פיקודו של קולונל ז'אק דוכסה, התחזק במידה ניכרת עם שני גדודים של חי"ר, שהביא את כוחו הכולל לכ־4,000 איש. בינתיים, יחידות של צבא הונאן והנואי הביאו את כוחו של ליו מינגצ'ואן ל-25,000 חיילים. על אף שמספרם היה גדול בהרבה, תפסו הצרפתים כמה עמדות סיניות קלות מדרום-מזרח לקילונג בסוף ינואר 1885, אך נאלצו להפסיק את פעולות ההתקפה בפברואר בשל הגשם הבלתי פוסק.
המצור נבע בין היתר מכך שהצי הצפוני של סין, בפיקודו של לי הונג-ג'אנג, לא שלח סיוע, ושום ספינות של ממשלת בייאנג הסינית לא נשלחו ללחימה בכוח הצרפתי. הספינות המתקדמות ביותר שמרו על הצי הצפוני של סין, בפיקודו של לי הונג-ג'אנג, שאפילו לא שקל לשלוח הצי המצויד הזה לתקוף את הצרפתים, משום שרצה לוודא שתמיד הם יהיו תחת פיקודו.
באותה העת סין הייתה מפולגת, בין הצפון והדרום. היו ביניהן יריבויות קשות, והממשלה התחלקה למפלגות שונות. הציים של הצפון והדרום הסיני לא שיתפו פעולה אחד עם השני. זו הייתה הסיבה שצרפת הצליחה להשיג את השליטה על הים בזמן המלחמה, משום שהם לא נלחמו בכל הצי של סין. גם האקדמיה הימית הצפונית של טיאנג'ין רוקנה את דרום סין ממלחים פוטנציאליים, שכן הם התגייסו לצפון סין במקום זאת.
מפרץ שיפו ומצור האורז.
אף על פי שחיל המשלוח של פורמוזה נשאר מרותק בקילונג, הכוח הצרפתי זכה להישגים חשובים במקומות אחרים באביב 1885. השייטת של קורבה קיבלה חיזוק ניכר מאז תחילת המלחמה, ועכשיו היו לה יותר אוניות מאשר באוקטובר 1884. בתחילת פברואר 1885 חלק מהשייטת שלו עזב את קילונג לאחר שאוימו על ידי הצי הדרומי הסיני, שניסה לשבור את המצור הצרפתי על פורמוזה. ב־11 בפברואר פגש כוח המשימה של קורבה את שלוש הספינות המודרניות ביותר בצי הסיני, ליד מפרץ שיפו, בליווי הפריגטה יויואן. בעוד שלוש הסיירות הסיניות הצליחו להימלט, הצליחה צרפת ללכוד את הפריגטה וספינה נוספת במפרץ שיפו. בליל 14 בפברואר, בקרב צ'יפו, תקפו הצרפתים את כלי השיט הסיניים בטורפדו. במהלך התנגשות קצרה במפרץ, הפריגטה יואן והספינה השנייה נפגעו קשות על ידי טורפדו.
קורבה המשיך לנחול הצלחה ב-1 במרץ על ידי איתור שאר הספינות הסיניות, אשר מצאו מקלט עם ארבע ספינות מלחמה סיניות אחרות ליד הנמל של נינגובו. קורבה שקל להכריע את הספינות הסיניות, אך החליט לבסוף לשמור על הכניסה למפרץ ולשמור על ספינות האויב במצור במשך כל ימי הלחימה.