An Associated Press reporter saw a tank waving the blue-and-yellow Ukrainian flag in the suburb of Marinka, which lies on a key road into Donetsk. Rebel combatants could still be seen in sniper positions in a nearby area closer to the city centre.
The government offensive against separatist fighters has focused recently on besieging the main rebel strongholds of Donetsk and Luhansk, as well as the smaller but strategically important town of Horlivka.
The airport is closed, but buses and trains are still running.
Pro-Russian separatists in eastern Ukraine have been battling the Kiev government since April. Ukraine and Western countries have accused Moscow of providing the rebels with equipment and expertise, a claim the Russian government has repeatedly denied.
The West has also accused Russia of most likely providing the insurgents with surface-to-air missiles that may have been used to shoot down a Malaysia Airlines passenger jet over rebel-held territory on July 17, killing all 298 people on board.
A spokesman for the Ukrainian military operation in the east, Oleksiy Dmitrashkovsky, said further fighting was expected to ensure full control over Marinka.
Yesterday, security officials announced that government troops had taken over Yasinuvata, a town just north of Donetsk that is the site of an important railway junction.
Security spokesman Andriy Lysenko said that victory would enable the army to cut off a key rebel weapons supply route.
The government has for several days claimed success in another key tactical goal of driving a wedge between Donetsk and Luhansk. Fighting in towns between those locations has taken a heavy toll on government troops, however.
