Rząd francuski obawiał się, że atak na Sơn Tây mógłby przerodzić się w niepewną wojnę z Chinami, mimo to miał nadzieję, że szybki marsz i zwycięstwo nad Chińczykami zmuszą przeciwnika do wycofania się z Wietnamu. Gdy dnia 10 grudnia fiaskiem zakończyły się rozmowy z Chińczykami, Courbet podjął decyzję o zdobyciu Sơn Tây.

Walki o Sơn Tây zaliczane są do najcięższych jakie przyszło stoczyć Francuzom w Tonkinie. Pomimo niewielkiej aktywności oddziałów wietnamskich i chińskich, bardzo mocny opór sprawiły atakującym Czarne Flagi. Dnia 14 grudnia niepowodzeniem zakończył się atak francuski na zewnętrzne linie obronne wroga pod Phù Sa. Po wycofaniu się Francuzów, następnej nocy Liu Yongfu przypuścił kontratak. Atak Czarnych Flag został odparty. Po dniu spokoju dnia 16 grudnia Courbet zarządził kolejny atak, poprzedzony intensywnym ostrzałem artyleryjskim. Około godziny 17, batalion Legii Cudzioziemskiej i oddział piechoty morskiej uderzyły na zachodnią bramę Sơn Tây, przebijając się do miasta. Czarne Flagi wycofały się do cytadeli, a kilka godzin później pod osłoną nocy opuściły miasto.