Zamfir begann seine Karriere bei seinem Heimatverein FC Argeș Pitești, wo er in der Saison 1973/74 in die erste Mannschaft aufrückte, die seinerzeit in der Divizia A (heute Liga 1) spielte. Am 30. September 1973 kam er im Spiel gegen Sportul Studențesc zu seinem ersten Einsatz. Nachdem er in seiner ersten Spielzeit kaum zum Einsatz gekommen war, wurde er in den folgenden Jahren in der Mehrzahl der Spiele berücksichtigt. In der Saison 1976/77 stieg Zamfir zum Stammspieler auf.
Nach mehreren Spielzeiten im Mittelfeld der Liga entwickelte sich Argeș ab 1977 zu einer Spitzenmannschaft. Nach der Vizemeisterschaft 1978 gewann Zamfir mit der Meisterschaft 1979 seinen ersten Titel. Im folgenden Europapokal der Landesmeister zog er mit seinem Verein gegen AEK Athen in die zweite Runde ein, schied dort aber gegen den späteren Sieger Nottingham Forest aus. In den folgenden Jahren qualifizierte er sich nach zwei dritten Plätzen jeweils für den UEFA-Pokal.
Im Jahr 1984 verließ Zamfir nach elf Jahren seinen Heimatverein und wechselte zum Ligakonkurrenten FC Olt Scornicești. Beim FC Olt wurde er auf Anhieb Stammspieler und kämpfte mit dem Verein gegen den Abstieg. In der Winterpause 1987/88 verließ er den Klub und wechselte in die Divizia B zu FC Inter Sibiu und stieg mit seinem neuen Verein am Saisonende in die Divizia A auf. Dennoch verließ er den Klub und ließ seine Karriere bei Dacia Pitești in seiner Heimatstadt ausklingen.
Nationalmannschaft
Mihai Zamfir bestritt zehn Spiele für die rumänische Fußballnationalmannschaft. Er debütierte am 5. Mai 1978 im Freundschaftsspiel gegen Bulgarien, als er für den verletzten Kapitän Florin Cheran eingewechselt wurde. Er gehörte unter Nationaltrainer Ștefan Kovács zu den Stammspielern, wurde ab Herbst 1979 von dessen Nachfolger Constantin Cernăianu jedoch nicht mehr berücksichtigt.
Im April 1981 bestritt Zamfir unter Valentin Stănescu im Freundschaftsspiel gegen Israel nach eineinhalbjähriger Pause seinen letzten Einsatz im Nationaltrikot.
Karriere als Trainer
Zamfir begann seine Trainerkarriere bei unterklassigen Vereinen. Nach einem Aufenthalt bei Dacia Pitești trainierte er in der Saison 1992/93 seinen früheren Verein FC Argeș Pitești[1], der gerade in die Divizia B abgestiegen war. Später wechselte er zu dem Drittligisten Chimica Târnăveni, mit dem ihm 1998 der Aufstieg in die Divizia B gelang. Im Mai 1999 wurde Zamfir als Nachfolger von Nicolae Dobrin Trainer von FC Argeș Pitești, um den Klub in den UEFA-Pokal zu führen. Dies gelang ihm trotz sechs Siegen aus sieben Spielen nicht, so dass der Klub am Saisonende nur den vierten Platz belegte. Obwohl FC Argeș in die nachfolgende Spielzeit gut gestartet war, wurde Zamfir Ende August 1999 von Florin Halagian abgelöst. Zu Beginn des Jahres 2000 löste er wiederum Halagian ab, obwohl der Klub zu diesem Zeitpunkt auf dem zweiten Platz lag. Nach nur fünf Punkten in acht Spielen wurde er jedoch im April 2000 wieder entlassen und durch Marian Bondrea ersetzt, der die Saison jedoch nicht mehr retten konnte. Anschließend kehrte Zamfir in die Divizia B zu Dacia Pitești als Trainer zurück. Im Sommer 2000 überließ der Verein seinen Zweitligastartplatz FC Politehnica Timișoara[2] und Zamfir wechselte ebenfalls zu Poli.[3] Dort konnte er sich allerdings nicht lange halten und übernahm noch während der Saison den Ligakonkurrenten Național Cimentul Fieni, mit dem er 2001 sportlich in die Divizia C abstieg. Der Verein kaufte anschließend Metrom Brașov den Zweitligastartplatz ab und startete in der Folgesaison unter dem Namen Cimentul Fieni in der Divizia B.[4] Zamfir kehrte unterdessen zu FC Argeș Pitești zurück und wurde dort Co-Trainer von Nicolae Dobrin[5], dessen Vertrag aber schon nach vier Spieltagen der Saison 2001/02 aufgelöst wurde. Zamfir blieb auch unter Dobrins Nachfolger, Florin Halagian, Co-Trainer von FC Argeș.[6]
Am 13. Juli 2010 löste Zamfir Ion Vlădoiu als Trainer bei FC Argeș Pitești ab.[11] Vlădoiu hatte nach nur zwei Wochen gekündigt und bei seiner Kündigung die schlechten Trainingsbedingungen bemängelt. Zamfir gab sein Amt am 29. Juli 2010 aus denselben Gründen auf.[12]