Enligt militären kontrollerar militanterna nu bara små fickor i den södra filippinska staden.
Men det finns fortfarande rapporter om strider på marken och tusentals civila fångade.
Nitton civila är kända för att ha dött. Några hittades döda i en ravin med skottskador i huvudet.
Militanter allierade till den så kallade islamiska staten kom ut på gatorna i Marawi förra veckan efter armén försökte fånga en högsta militant ledare.
Många invånare flydde från staden när sammandrabbningar bröt ut, men en lokal tjänsteman sade att omkring 2.000 människor inte kunde lämna områden som innehas av militanterna.
Talesman för Filippinernas väpnade styrkor brigadgeneral Restituto Padilla sade att trupper var i "fullständig kontroll över staden utom för vissa områden" som innehas av militanter från Maute gruppen, de lokala militanter som har förklarat lojalitet till IS.
Han sade att "omkring 40 till 50 väpnade element" fortfarande fanns i staden, men detta kan öka med tanke på militanternas verksamhet på marken, inklusive frigörandet av mer än 100 fångar från ett lokalt fängelse.
Han tillade att 18 militär- och polispersonal hade dödats och att fler än 61 mautesoldater hade dödats.
Enligt rapporter tror man fortfarande att de återstående kämparna håller flera gisslan, däribland en präst och ett antal kristna.
Våldet började när armén misslyckades i sitt försök att fånga Isilon Hapilon, troddes vara den främsta IS-ledaren i Filippinerna och kopplade till Maute.
Som svar svärmade mauten omkring i staden, tog över ett sjukhus och brände ner byggnader.
President Rodrigo Duterte förklarade sedan undantagstillstånd på den södra ön Mindanao, där Marawi ligger.
Filippinerna, som är majoritetskatolskt, har under årtionden mött muslimska separatistiska rörelser i Mindanao med dess betydande muslimska befolkning.
Marawi är känd som "islamisk stad" i Filippinerna för sin muslim-majoritet befolkning.
Den filippinska militären säger att det har gjort vinster återta Marawi stad från islamistiska militanter mitt i sammandrabbningar som har lämnat omkring 100 människor döda.